SQL Server索引命名约定

Eri*_*ess 160 sql-server indexing naming-conventions

是否有一些标准的方法来为SQL Server命名索引?似乎主键索引名为PK_,非聚簇索引通常以IX_开头.除了唯一索引之外,是否还有任何命名约定?

JSR*_*JSR 262

我用

PK_用于主键

UK_用于唯一键

IX_表示非集群非唯一索引

UX_用于唯一索引

我的所有索引名称都采用的形式
<index or key type>_<table name>_<column 1>_<column 2>_<column n>

  • 我从来没有需要一个非唯一的聚簇索引......我意识到它是可能的,但它似乎从来没有像我这样正确的行动方案. (7认同)
  • 根据这里给出的答案http://stackoverflow.com/questions/1401572/what-are-differences-between-index-vs-key-in-mysql KEY和INDEX是同义词.因此,不需要为唯一键和唯一索引使用不同的前缀? (4认同)
  • 它是一个逻辑上的区别,我使用UniqueKey,如果有一个外键引用,否则我使用UniqueIndex. (2认同)
  • Tahir Hassan:我认为你错了,Sql Server 索引必须有一个唯一的名称。此外,我喜欢能够查看索引名称并查看它属于哪个表或视图。 (2认同)

Mar*_*ers 24

我通常根据表的名称和它们包含的列来命名索引:

ix_tablename_col1_col2
Run Code Online (Sandbox Code Playgroud)

  • 我很确定他只列出索引列,按照它们放在索引中的顺序. (3认同)
  • 如何区分索引列和包含列? (2认同)

小智 8

是否值得与外键关联的索引的特殊前缀?我是这么认为的,因为它提醒我默认情况下不创建外键索引,因此更容易看出它们是否缺失.

为此,我使用的名称与外键的名称相匹配:

FK_[table]_[foreign_key_table]
Run Code Online (Sandbox Code Playgroud)

或者,在同一个表中存在多个外键

FK_[table]_[foreign_key_table]_[foreign_key_field]
Run Code Online (Sandbox Code Playgroud)