我正在尝试在Contacts表和DepartmentTitle表之间建立一对多的关系。
我正在考虑在DepartmentTitle表上引入代理键,以便可以将此DepartmentTitle引用到Contacts表以触发这两个表之间的一对多关系。但是我不想在DepartmentTitle中注册复合键的相同组合,这使我无法将代理键引入到表中。我希望DepartmentTitle表中组合键的组合是唯一的。
为纠正这种情况,我想到了下面的ER图,其中departmentTitleID是唯一的,并且用作表的引用ID(但不是主键)。这行得通吗?如果没有,那么解决方案是什么?
答案 0 :(得分:0)
如果要引入代理密钥,请将其用作主密钥。但是,我宁愿将Department_ID和Title_ID作为Contacts中的单独列,因为这样可以使Contacts根据需要直接连接到Department和/或Title,而不必始终加入DepartmentTitle。从Contacts中的两列到DepartmentTitle中的相同列,您仍然可以使用复合外键约束。