我正在尝试创建一个关系,其中可以包含四个不同部分中的任何一个,但是任何相同部分的集合都应该作为唯一处理.
示例:作业必须具有指定的公司,可以选择具有指定的位置,工作组和程序.作业可能没有没有位置的工作组.
我们假设我们有公司A,B,C; 位置X,Y,Z; 工作组I,J,K和计划1,2,3.
所以有效的关系可能包括A - X - I - 1 A - Z - 2 B - Y C C - 3 B - Z - K.
但无效关系将包括A - K(没有位置的工作组)Y - K - 1(没有公司)
所以,为了创建我的表,我已经创建了
companyID INT NOT NULL,
FOREIGN KEY companyKEY (companyID) REFERENCES company (companyID),
locationID INT,
FOREIGN KEY locationKEY (locationID) REFERENCES location (locationID),
workgroupID INT,
FOREIGN KEY workgroupKEY (workgroupID) REFERENCES workgroup (workgroupID),
programID INT,
FOREIGN KEY programKEY (programID) REFERENCES program (programID),
UNIQUE KEY companyLocationWorkgroupProgramKEY (companyID, locationID, …