3

我有 3 个表:成员、雇主和位置。

成员具有 MemberID、EmployerID 和 LocationID。
雇主有 EmployerID。
Location有 EmployerID、LocationID。

Member <<---> Employer
Location <<---> Employer
Member <---> Location

我需要对说的成员进行检查约束

成员的位置为空,或属于其雇主的位置

如何将 Member.LocationID 限制为具有相同 EmployerID 的位置?即:Member.EmployerID = Location.EmployerID

4

1 回答 1

1

您可以创建一个唯一的索引/主键Location (EmployerID, LocationID)(我认为这可能已经是这种情况了)

然后有一个多列 FK 引用它Member

CREATE TABLE Location
(
EmployerID INT,
LocationID INT,
PRIMARY KEY (EmployerID,LocationID)
)


CREATE TABLE Member
(
MemberID INT PRIMARY KEY,
EmployerID INT,
LocationID INT,
FOREIGN KEY (EmployerID,LocationID)
    REFERENCES Location (EmployerID,LocationID)
)
于 2012-03-21T17:33:03.827 回答