gpt4 book ai didi

database - 主键与唯一约束?

转载 作者:太空狗 更新时间:2023-10-30 01:38:07 26 4
gpt4 key购买 nike

我目前正在设计一个全新的数据库。在学校里,我们总是学会在每个表中放置一个主键。

我读了很多文章/讨论/新闻组帖子说最好使用唯一约束(也就是某些数据库的唯一索引)而不是 PK。

你的观点是什么?

最佳答案

主键实际上只是一个 candidate key不允许为 NULL。因此,在 SQL 术语中 - 它与任何其他唯一键没有什么不同。

但是,对于我们的非理论 RDBMS,您应该有一个主键——我从未听说过有其他争论。如果该主键是 surrogate key ,那么您应该natural key(s) 具有唯一约束.

要走开的重要一点是,您应该对所有候选(无论是自然键还是代理键)具有唯一约束。然后您应该选择在 Foreign Key 中最容易引用的那个成为您的主键*。

你还应该有一个 clustered index *。这可能 是您的主键或自然键 - 但两者都不是必需的。您应该根据表的查询使用情况选择聚簇索引。如有疑问,主键是不错的首选。

  • 虽然技术上只需要引用外键关系中的唯一键,但非常偏爱主键是公认的标准做法。事实上,如果某些 RDBMS 只允许主键引用,我也不会感到惊讶。

  • 编辑:有人指出,Oracle 的“聚簇表”和“聚簇索引”术语与 Sql Server 不同。与我所说的 Oracle-ese 等效的是 Index Ordered Table并且推荐用于 OLTP 表 - 我认为这将是 SO 问题的主要焦点。我假设如果您负责大型 OLAP 数据仓库,您应该已经对数据库设计和优化有自己的看法。

关于database - 主键与唯一约束?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/158392/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com