私は主キーが自然なキーであると考えられるときと代理キーと見なされるときを理解しようとしています。私は代理キー、自然のキーは次の性質を持っていることを読んだ:プライマリキーがナチュラルキーと見なされ、サロゲートキーと見なされるときは、
自然キーがすでに現実の世界で 存在する属性から構成されているキーです。
サロゲートキーは、データベース環境外では意味を持ちません。
は、私は(employee_id
が主キーである)次の表を持って言ってやるがいい。
今度は、例えば、employee_id
は、現実の世界で知られていると言ってみましょう:各従業員がIDカードを持っていますそれはemployee_id
が印刷されています。つまり、employee_id
は自然なキーですか?今
のは、employee_id
は、現実の世界では知られていない別のシナリオを、考えてみよう
SSN
使用して、現実の世界で識別され、それは、
employee_id
であることを意味していサロゲートキー?
"natural key"の引用された定義は矛盾していますが、多くは "already"のない定義を使用します。外部的に見えるIDがデータベースで新しいものであっても、それらはまだ自然です。あなたの「すでに」定義を使用する人は、あなたが与えたものとは異なる「サロゲート」の定義を「内部」ではなく「新しい」ものとして使用し、自然ではない代理人ではない新しい従業員IDを呼び出すでしょう。 – philipxy