小编典典

唯一约束的命名约定

sql

命名约定很重要,并且主键和外键是常用且显而易见的约定(分别为PK_TableFK_Table_ReferencedTable)。IX_Table_Column索引的命名也相当标准。

那UNIQUE约束呢?此约束是否有公认的命名约定?我看过UK_TableName_ColumnUQ_TableName_Column和有人推荐AX_TableName_Column-我不知道那是哪里来的。

我通常使用过,UQ但我并不特别喜欢它,而且我不喜欢不得不针对UK倡导者来捍卫自己使用它的选择。

我只是想看看在最普遍的命名上是否达成共识,或者关于一个人为什么比其他人更有意义的一个很好的理由。


阅读 189

收藏
2021-04-15

共1个答案

小编典典

我的想法是,这不是关键:这是一个约束。

当然,它 可以 用作键,并且唯一地标识一行,但这 不是 键。

一个例子是,关键是“ThingID”,替代 到位ThingName自然键的使用。您仍然需要 约束 ThingName:尽管它不会用作键。

我还将使用UQ和UQC(如果已群集)。

您可以改为使用唯一索引,然后使用“
IXU”。根据所采用的逻辑,索引也是键,但仅在唯一时才是键。否则,它是一个索引。因此,我们将从IK_columnname唯一索引和IX_columnname非唯一索引开始。奇妙。

唯一约束和唯一索引之间的唯一区别是INCLUDE列。

编辑:2013年2月。自SQL Server 2008起,索引也可以具有过滤器。约束不能

因此,归结为以下一种

  • 坚持使用SQL的其余部分中的UQ
  • 使用IK来唯一索引(也可以使用IKC来进行群集索引)来保持一致…
2021-04-15