我仍在努力确定是否将标识列用于 PK,当您可以使用现有列时,是否是正确的方法。
例子:
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,而是在我的两列中放置一个主键,这将始终是唯一的。IE:
CONSTRAINT pk_person_link PRIMARY KEY(owner_person_id, link_person_id)
这只是个人选择,还是有充分的理由不使用身份(我赞成,纯粹是因为 - 我一直这样做)。