我仍然在努力研究如果使用PK的標識列,當你可以脫離使用現有的列時,是正確的選擇。IDENTITY列 - 好還是壞?
例子:
CREATE TABLE person_link
(
person_link_id INT NOT NULL IDENTITY(1,1)
,owner_person_id INT NOT NULL
,link_person_id INT NOT NULL
,link_date_created DATETIME NOT NULL DEFAULT(GETDATE())
,deleted_person_id INT NULL
CONSTRAINT pk_person_link PRIMARY KEY(person_link_id)
,CONSTRAINT fk_person_link_owner FOREIGN KEY (owner_person_id) REFERENCES person (person_id)
,CONSTRAINT fk_person_link_link FOREIGN KEY (link_person_id) REFERENCES person (person_id)
)
或者,我應該刪除person_link_id,和相當把一個主鍵在我的兩列,這將永遠是獨一無二的。即:
CONSTRAINT pk_person_link PRIMARY KEY(owner_person_id, link_person_id)
難道僅僅是個人的選擇,或者是有一個很好的理由不使用的身份(這,我是贊成的,純粹是因爲 - 我做這一切的時候)。
可能重複:// stackoverflow.com/questions/63090/surrogate-vs-natural-business-keys) – RedFilter 2012-08-16 01:22:00