1

我知道主键必须是唯一的,但是主键是否可以巧合地等于同一张表中的不同列?

例如,我有 2 张桌子。一个表称为 person,其中包含有关人员的信息(ID、电子邮件、电话、地址、姓名)。另一张表是人员(ID、pID(person ID)、salary、position)。在员工中,ID 列是主键,用于唯一标识员工。数字从 1 到 100。但是,pID(个人 ID)可能等于 ID。例如,员工 ID 可能是 1,它引用的 pID 可能等于 1。

可以吗?

4

3 回答 3

3

主键的工作是唯一且可靠地标识每一行 - 因此,它必须是唯一的,并且NOT NULL- 其他任何内容都无关紧要。

如果您恰好有第二列具有完全相同的值-我想知道为什么会这样-但这绝不会对主键产生负面影响。

于 2013-11-02T21:49:08.180 回答
1

表的主键必须唯一且不为空。表之间的唯一性没有限制。这 100% 取决于你。

于 2013-11-02T21:50:59.790 回答
1

是的。没有检查表中不同列之间的关系。

您担心的限制甚至没有意义。ID假设您有一个包含、name和列的人员表year_of_birth。它不允许 1975 年出生的人拥有ID = 1975.

于 2013-11-02T21:49:10.020 回答