この質問は別のRDBMS
:MySQL
とに当てはまりますSQL Server
私はこれを一晩中探していましたが、ネット上で見つけることができません。私の問題は、一意性と外部キーに関するものです。次のスキーマについて考えてみます。
CREATE TABLE Male
(
StudentID INT,
FirstName VARCHAR(20) NOT NULL,
MiddleName VARCHAR(20) NOT NULL,
LastName VARCHAR(20) NOT NULL,
-- other columns ...
CONSTRAINT male_PK PRIMARY KEY (StudentID),
CONSTRAINT male_UQ UNIQUE (FirstName, MiddleName, LastName)
);
CREATE TABLE Female
(
StudentID INT,
FirstName VARCHAR(20) NOT NULL,
MiddleName VARCHAR(20) NOT NULL,
LastName VARCHAR(20) NOT NULL,
-- other columns ...
CONSTRAINT Female_PK PRIMARY KEY (StudentID),
CONSTRAINT Female_UQ UNIQUE (FirstName, MiddleName, LastName)
);
CREATE TABLE ClassList
(
ClassID INT,
Name VARCHAR(30),
ClassYear INT,
-- other columns ...
CONSTRAINT ClassList_PK PRIMARY KEY (ClassID),
CONSTRAINT ClassList_UQ UNIQUE (Name, ClassYear)
);
テーブルMale
とFemale
が分離されている理由は、それらが異なるSQLアカウントによって維持されているためです。
現在の問題は、アソシエーションクラスです。
CREATE Student_Class
(
SudentID INT,
ClassID INT,
CONSTRAINT tb_UQ UNIQUE (StudentID, ClassID)
)
だから私の質問は:
StudentID
テーブルMale
との両方からの一意性を設定するにはどうすればよいですかFemale
。ネットでは見つかりません。- アソシエーションクラステーブルの値列が2つの
Foreign Key
テーブルから来るという制約を適用するにはどうすればよいですか?Male
Female
提案も受け付けています。
ありがとうございました