代理外键

时间:2010-09-05 14:46:56

标签: sql oracle foreign-keys

Oki所以我有两张桌子:person和person_email

PERSON
------
id (PK)
person_code (Unique key 1)
person_type (Unique key 1)
surname
forename

PERSON_EMAIL
------------
id (PK)
person_id (Unique key 1) (references person(id))
email_address (Unique key 1)

这是正确的吗?

或应该是:

PERSON_EMAIL
------------
id (PK)
person_id (references person(id))
person_code (Unique key 1)
person_type (Unique key 1)
email_address (Unique key 1)

1 个答案:

答案 0 :(得分:2)

您的第二个建议包括PERSON表的唯一标识符。如果您尝试这样做,迟早会发现这些标识符指示两个不同的行。此外,更改PERSON表中的person_code或person_type将需要PERSON_EMAIL表的匹配更新。出于这些原因,我建议你的第一个版本更好。