我想知道什麼時候主鍵被認爲是一個自然鍵,什麼時候它被認爲是代理鍵。我已閱讀,代理鍵和自然鍵具有以下屬性:當主鍵被認爲是一個自然鍵,並且當它被認爲是代理鍵?
自然鍵是已經在現實世界中存在 屬性形成的關鍵。
代理鍵在數據庫環境之外沒有意義。
說我有如下表(employee_id
是主鍵):
現在,讓我們說,employee_id
是在現實世界中已知的,例如:每個員工都有一個ID卡其上印有employee_id
,這是否意味着employee_id
是一個天然的關鍵?
現在讓我們考慮另一種情況,其中employee_id
沒有在現實世界中已知的(它在數據庫環境之外沒有任何意義),以及員工使用他們SSN
在現實世界中確定,這是否意味着employee_id
是代理鍵?
您引用的「自然鑰匙」的定義是comon,但許多人會使用沒有「已經」的定義;那麼即使外部可見IDs是數據庫的新增功能,它們仍然很自然。使用你的「已經」定義的人可能會使用與你給出的不同的「代理人」定義爲「新」而不是「內部」,並且會將新員工ID稱爲非自然但代理人。 – philipxy