有兩個表:無法創建外鍵
- 表
Course
與列ClassID (PK, int, not null)
和CourseID (int, not null)
列CourseID (PK, int, not null)
和DepartmentID (PK, FK, int, not null)
,和 - 表
Class
。
我儘量讓Class.CourseID
FK到Course.CourseID
但我得到這個消息:
在表中的列「課程」不匹配現有的主鍵或 唯一約束。
我該怎麼辦?
有兩個表:無法創建外鍵
Course
與列ClassID (PK, int, not null)
和CourseID (int, not null)
列CourseID (PK, int, not null)
和DepartmentID (PK, FK, int, not null)
,和Class
。我儘量讓Class.CourseID
FK到Course.CourseID
但我得到這個消息:
在表中的列「課程」不匹配現有的主鍵或 唯一約束。
我該怎麼辦?
FK的「結構」必須與PK-兩個字段相同。只有CourseID作爲FK,您無法區分記錄。
例子: 設C1,C2是病程記錄,D1類記錄:
c1: {1, 1}
c2: {1, 2}
現在假設D1紀錄是某事像{1,1} - >你的意思是C1或C2?
您應該只製作CourseID PK或製作複雜的FK(CourseID,DepartmentID)或在課程表中創建代理PK。就個人而言,我會去第一或第三個解決方案
DepartmentID不應該是表課程的主鍵的一部分。 或者如果你需要它,那麼在Class表中重新構造FK,這樣它就會引用這兩者(所以表格課程的真正主鍵)。
如果你有一個複合主鍵由'Course'表中的兩列'(CourseID,DepartmentID)'組成 - 任何引用該表的**都必須同時包含它們FK中的兩個列。 –
課程中需要一個複合主鍵? Course.CourseID不是唯一的嗎? – brian