この質問は別の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テーブルから来るという制約を適用するにはどうすればよいですか?MaleFemale
提案も受け付けています。
ありがとうございました