我对数据库管理还很陌生,这个问题似乎只能用一句话来回答。所有其他 SO 答案都说“候选 key 是最小的 super key ”。这对我来说毫无意义。
候选键应该指定数据库记录的唯一性,对吗?主键是候选键。如果主键已经指定了唯一性,那么添加更多候选键有什么意义?
我见过如下示例记录:
员工(ID、姓名、电话号码)
其中 ID 是主键,PhoneNumber 是候选键。在我看来,ID 足以指定员工记录的唯一性。尽管 PhoneNumbers(可能)是唯一的,但将它们指定为候选键对我来说似乎并不“最小”。
最佳答案
这意味着如果 PhoneNumber 确实是候选键,您可以删除 ID 列并改用 PhoneNumber。换句话说,它是唯一键的候选者。
维基百科有更多 formal definition你们很多人都想看看。
关于database - 候选键有什么意义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3961455/