代理键和复合键之间的区别?

use*_*937 2 primary-key

我是数据库的初学者,并且对区分这两者的各种定义感到困惑。各种谷歌搜索都没有完全阐明它们的差异。请帮忙简单地解释一下。

Tho*_*len 6

复合键只是包含两列或更多列的键。

代理键对于数据来说并不是天然唯一的,而是出于(希望)有充分理由而添加或强加到数据上的。示例可以包括 SQL Server 中的 IDENTITY 列 - 有时在其他产品中称为自动编号。

也许您正在存储有关人员的信息,但您无法确定他们可以通过姓名、出生日期等组合来唯一标识。如果您没有关于他们的一些外部信息来赋予其唯一性(例如社会保障号),您可以使用代理键来唯一标识行。