【问题标题】:SQL Server : primary key vs unique Index [closed]SQL Server:主键与唯一索引[关闭]
【发布时间】:2021-06-22 08:13:07
【问题描述】:

我有一个关于为活动设计表格的问题。

使用多列主键,还是使用具有多列唯一索引的顺序主键,哪个更好?

这个表的列是这样的:

【问题讨论】:

  • 如果您有一个包含 5 列的 PK - 请注意,想要引用此表的 任何 子表将 需要所有这 5 列 - 如果您有许多引用表并且需要在这些表上运行 JOIN 查询,这可能会成为一场噩梦......
  • “哪个更好”意味着征求意见,Stack Overflow 特别将这些类型的问题称为题外话。但答案是,“视情况而定”;虽然我怀疑这里有 5 列是正确的选择,因为当您将键用作另一个表上的外键时,会有很多重复数据。
  • 对不起,我不知道。这种问题是题外话。
  • 没有任何关系。这是一张桌子。我为查询和唯一性设置了主键
  • 那么AggregateId 是什么?也许您真正想要的是单列 PK,然后是多列唯一索引/约束。

标签: sql-server primary-key unique-index


【解决方案1】:

一般在 SQL Server 中,PRIMARY KEY 在后台创建为唯一的聚集索引。

因此,最好将聚集索引键保持为:

  • 唯一(避免添加唯一标识符以使值唯一)
  • 窄(不占空间)
  • 增量(避免碎片)

所以,在你的情况下,最好选择

  • 顺序主键和多列唯一索引

【讨论】:

    猜你喜欢
    • 2012-05-03
    • 2011-01-16
    • 2010-09-26
    • 2014-04-19
    • 1970-01-01
    • 2014-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多