database - 候选键有什么意义?

标签 database database-design entity-relationship relational-database

我对数据库管理还很陌生,这个问题似乎只能用一句话来回答。所有其他 SO 答案都说“候选 key 是最小的 super key ”。这对我来说毫无意义。

候选键应该指定数据库记录的唯一性,对吗?主键是候选键。如果主键已经指定了唯一性,那么添加更多候选键有什么意义?

我见过如下示例记录:

员工(ID、姓名、电话号码)

其中 ID 是主键,PhoneNumber 是候选键。在我看来,ID 足以指定员工记录的唯一性。尽管 PhoneNumbers(可能)是唯一的,但将它们指定为候选键对我来说似乎并不“最小”。

最佳答案

这意味着如果 PhoneNumber 确实是候选键,您可以删除 ID 列并改用 PhoneNumber。换句话说,它是唯一键的候选者

维基百科有更多 formal definition你们很多人都想看看。

关于database - 候选键有什么意义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3961455/

相关文章:

postgresql - 触发与检查约束

database-design - 何时应将不同字段的查找值组合到单个查找表中?

c# - Entity Framework - 多对多关系

ruby-on-rails - 为 Rails 应用程序自动生成 UML 图的工具

java - 从现有数据库生成 JDO 对象

PHP - 安全地存储外部服务的密码?

java - 如何备份运行中的嵌入式H2数据库引擎?

mysql - 请求批准数据库模型

mysql - 设计一个关系数据库,以便实体可以保存一组可选的数据

mysql - 在数据库中实现相互关联的元组的最佳方法,例如零件交换汽车