我对数据库管理还比较新,但这个问题似乎从未得到过超过一句话的回答。其他所有SO答案都说“候选键是极小超键。” 对我来说这毫无意义。
一个候选键应该指定数据库记录的唯一性,对吧?而主键就是一个候选键。如果主键已经指定了唯一性,再加上更多的候选键有什么意义呢?
我见过像下面这样的示例记录:
Employee(ID, Name, PhoneNumber)
其中ID是主键,PhoneNumber是一个候选键。从我的理解来看,ID已足够指定员工记录的唯一性。虽然电话号码可能是唯一的,但将其作为候选键进行指定看起来并不“极小”。