您如何触发(多对多)表与普通表之间的一对多关系?

时间:2019-04-30 17:02:14

标签: entity-relationship rdbms

我正在尝试在Contacts表和DepartmentTitle表之间建立一对多的关系。

我正在考虑在DepartmentTitle表上引入代理键,以便可以将此DepartmentTitle引用到Contacts表以触发这两个表之间的一对多关系。但是我不想在DepartmentTitle中注册复合键的相同组合,这使我无法将代理键引入到表中。我希望DepartmentTitle表中组合键的组合是唯一的。

为纠正这种情况,我想到了下面的ER图,其中departmentTitleID是唯一的,并且用作表的引用ID(但不是主键)。这行得通吗?如果没有,那么解决方案是什么? enter image description here

1 个答案:

答案 0 :(得分:0)

如果要引入代理密钥,请将其用作主密钥。但是,我宁愿将Department_ID和Title_ID作为Contacts中的单独列,因为这样可以使Contacts根据需要直接连接到Department和/或Title,而不必始终加入DepartmentTitle。从Contacts中的两列到DepartmentTitle中的相同列,您仍然可以使用复合外键约束。