这就是让我感到困惑的地方。我经常在数据库表中有复合主键。这种方法的不好的一面是,当我删除或编辑条目时,我有很多额外的工作。但是,我觉得这种方法是本着数据库设计的精神。
另一方面,我的一些朋友从不使用复合键,而是在表中引入另一个“id”列,所有其他键都只是 FK。在编写删除和编辑程序时,他们的工作量要少得多。但是,我不知道它们如何保持数据条目的唯一性。
例如:
方式 1
create table ProxUsingDept (
fkProx int references Prox(ProxID) NOT NULL,
fkDept int references Department(DeptID) NOT NULL,
Value int,
PRIMARY KEY(fkProx,fkDept)
)
方式二
create table ProxUsingDept (
ID int NOT NULL IDENTITY PRIMARY KEY
fkProx int references Prox(ProxID) NOT NULL,
fkDept int references Department(DeptID) NOT NULL,
Value int
)
哪种方式更好?使用第二种方法有什么不好的方面?有什么建议么?