我对数据库管理来说相当新鲜,而且这个问题似乎没有在多个句子中得到回答.所有其他SO答案都说“候选键是最小的超级键”.这对我来说没什么意义
候选键应该指定db记录的唯一性,是否正确?主键是候选键.如果主键已经指定了唯一性,添加更多候选键的是什么?
我已经看到了如下的示例记录:
员工(ID,姓名,电话号码)
其中ID是主键,PhoneNumber是候选键.从我看到的,ID足以指定员工记录的唯一性.虽然PhoneNumbers(可能)是独一无二的,但将它们指定为候选键,对我来说似乎并不“很小”.
解决方法
这意味着如果PhoneNumber确实是候选键,则可以删除ID列,并使用PhoneNumber.换句话说,它是一个唯一键的候选人.
维基百科有更多formal definition你很多想看.