3

Member、Employer、Location の 3 つのテーブルがあります。

Memberには、MemberID、EmployerID、および LocationID があります。
雇用者は雇用者 ID を持っています。
場所には、EmployerID、LocationID があります。

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

というメンバーにチェック制約を作成する必要があります

メンバーの所在地が null であるか、雇用主に属する所在地です

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 に答える