[英]When will it be considered an OVERKILL when making a composite primary key?
[英]When a primary key is considered to be a natural key and when it is considered to be a surrogate key?
您的总结是正确的。 所有键都是它们所标识的事物的“替代”。 与数据库管理有关的唯一有用的区别是,关键属性是否存在或是否打算在业务领域 (即话语领域)中使用。 如果在业务域中使用了密钥,则称为自然密钥(也称为业务密钥或域密钥)。 否则,它称为代理密钥。
这些术语在某种程度上是非正式的,并且确实被不同的人以不同的方式使用。
EFCodd在其RM / T论文中使用了更严格的替代定义。 他提出了在数据库表中甚至看不到的“键”的想法。 他的建议存在一些严重的问题,并且没有以他所描述的方式广泛实施。 它只具有历史意义。
Codd定义中仍然有意义的一个方面是,代理通常通常不可见-至少对于业务域中的数据用户而言不可见。 实际上,在业务域中公开键值会使该键成为域键,而不是替代键。 随之而来的是,代理密钥不能满足域密钥的作用,也不会消除对域密钥的需求。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.