我仍然在努力研究如果使用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