命名约定很重要,并且主键和外键是常用且显而易见的约定(分别为PK_Table和FK_Table_ReferencedTable)。IX_Table_Column索引的命名也相当标准。
PK_Table
FK_Table_ReferencedTable
IX_Table_Column
那UNIQUE约束呢?此约束是否有公认的命名约定?我看过UK_TableName_Column,UQ_TableName_Column和有人推荐AX_TableName_Column-我不知道那是哪里来的。
UK_TableName_Column
UQ_TableName_Column
AX_TableName_Column
我通常使用过,UQ但我并不特别喜欢它,而且我不喜欢不得不针对UK倡导者来捍卫自己使用它的选择。
UQ
UK
我只是想看看在最普遍的命名上是否达成共识,或者关于一个人为什么比其他人更有意义的一个很好的理由。
我的想法是,这不是关键:这是一个约束。
当然,它 可以 用作键,并且唯一地标识一行,但这 不是 键。
一个例子是,关键是“ThingID”,替代 键 到位ThingName自然键的使用。您仍然需要 约束 ThingName:尽管它不会用作键。
我还将使用UQ和UQC(如果已群集)。
您可以改为使用唯一索引,然后使用“ IXU”。根据所采用的逻辑,索引也是键,但仅在唯一时才是键。否则,它是一个索引。因此,我们将从IK_columnname唯一索引和IX_columnname非唯一索引开始。奇妙。
IK_columnname
IX_columnname
唯一约束和唯一索引之间的唯一区别是INCLUDE列。
编辑:2013年2月。自SQL Server 2008起,索引也可以具有过滤器。约束不能
因此,归结为以下一种