有两个表:
Course
列和CourseID (PK, int, not null)
列以及DepartmentID (PK, FK, int, not null)
Class
,其中包含ClassID (PK, int, not null)
列和CourseID (int, not null)
。我尝试将Class.CourseID
FK设为Course.CourseID
但我收到此消息:
表'Course'中的列与现有的主键或 UNIQUE约束。
我该怎么办?
答案 0 :(得分:1)
DepartmentID不应该是表课程主键的一部分。 或者,如果你需要它,那么在Class表中重新修改FK,这样它就会引用两个(所以表是课程的真正主键)。
答案 1 :(得分:0)
FK的“结构”必须与PK相同 - 两个字段。只有CourseID作为FK,你无法区分记录。
实施例: 设c1,c2为课程记录,d1为课程记录:
c1: {1, 1}
c2: {1, 2}
现在假设d1记录像{1,1} - >你的意思是c1还是c2?
您应该只使用CourseID PK或制作复杂的FK(CourseID,DepartmentID)或在课程表中创建代理PK。就个人而言,我会选择第一或第三种解决方案