Mỗi bản ghi Sinh viên sẽ có một cột Lớp con (giả sử đó là một CHAR (1)). {A =Vận động viên, M =nhạc sĩ ...}
Bây giờ hãy tạo bảng Vận động viên và Nhạc sĩ của bạn. Chúng cũng phải có cột SubClass, nhưng phải có một ràng buộc kiểm tra mã hóa cứng giá trị cho loại bảng mà chúng đại diện. Ví dụ:bạn nên đặt giá trị mặc định là 'A' và ràng buộc KIỂM TRA là 'A' cho cột Lớp con trên bảng Vận động viên.
Liên kết bảng Nhạc sĩ và Vận động viên của bạn với bảng Sinh viên bằng khóa ngoại COMPOSITE của StudentID AND Subclass. Và bạn đã hoàn thành! Đi thưởng thức một tách cà phê ngon.
CREATE TABLE Student (
StudentID INT NOT NULL IDENTITY PRIMARY KEY,
SubClass CHAR(1) NOT NULL,
Name VARCHAR(200) NOT NULL,
CONSTRAINT UQ_Student UNIQUE (StudentID, SubClass)
);
CREATE TABLE Athlete (
StudentID INT NOT NULL PRIMARY KEY,
SubClass CHAR(1) NOT NULL,
Sport VARCHAR(200) NOT NULL,
CONSTRAINT CHK_Jock CHECK (SubClass = 'A'),
CONSTRAINT FK_Student_Athlete FOREIGN KEY (StudentID, Subclass) REFERENCES Student(StudentID, Subclass)
);
CREATE TABLE Musician (
StudentID INT NOT NULL PRIMARY KEY,
SubClass CHAR(1) NOT NULL,
Instrument VARCHAR(200) NOT NULL,
CONSTRAINT CHK_Band_Nerd CHECK (SubClass = 'M'),
CONSTRAINT FK_Student_Musician FOREIGN KEY (StudentID, Subclass) REFERENCES Student(StudentID, Subclass)
);