在数据库代码中,我看到对 PRIMARY KEY
的引用。什么是主键?如果我的一个表中的某些列形成 PRIMARY KEY... 或不形成 PRIMARY KEY 会有什么区别。
最佳答案
第一范式要求你有一个唯一的键来建立关系。如果不满足此要求(即如果您没有唯一键),那么您的表将只是一个堆,而不是一个关系。
主键或多或少(即粗略地说)是一个特别选择的唯一键。设计模式的人选择它。 PK 和唯一键之间的主要区别是唯一键可以包含 NULL 值,而 PK 不能。此外,您可以在给定表中拥有多个唯一键,但最多有一个 PK。
通过将其中一个唯一键设为主键,您可以让其他表通过其外键 (FK) 轻松指向该表。从技术上讲,(子表的)FK 也可以指向任何唯一键(来自父表),但通常人们为此目的使用主键 (PK),它(如前所述)基本上只是唯一键之一。这意味着 FK 通常指向 PK。
更多详细信息,另请参阅:
关于database - 什么是主键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29708849/