Có một số cách để lập mô hình kế thừa trong cơ sở dữ liệu. Mà bạn chọn tùy thuộc vào nhu cầu của bạn. Dưới đây là một số tùy chọn:
Bảng mỗi loại (TPT)
Mỗi lớp có bàn riêng. Lớp cơ sở có tất cả các phần tử của lớp cơ sở trong đó và mỗi lớp dẫn xuất từ nó có bảng riêng, với khóa chính cũng là khóa ngoại của bảng lớp cơ sở; lớp của bảng dẫn xuất chỉ chứa các phần tử khác nhau.
Ví dụ:
class Person {
public int ID;
public string FirstName;
public string LastName;
}
class Employee : Person {
public DateTime StartDate;
}
Kết quả là các bảng như sau:
table Person
------------
int id (PK)
string firstname
string lastname
table Employee
--------------
int id (PK, FK)
datetime startdate
Bảng mỗi phân cấp (TPH)
Có một bảng duy nhất đại diện cho tất cả hệ thống phân cấp kế thừa, có nghĩa là một số cột có thể sẽ thưa thớt. Một cột phân biệt được thêm vào để cho hệ thống biết đây là loại hàng nào.
Với các lớp ở trên, bạn kết thúc với bảng này:
table Person
------------
int id (PK)
int rowtype (0 = "Person", 1 = "Employee")
string firstname
string lastname
datetime startdate
Đối với bất kỳ hàng nào là kiểu hàng 0 (Người), ngày bắt đầu sẽ luôn là giá trị rỗng.
Bảng trên mỗi bê tông (TPC)
Mỗi lớp có bảng được định dạng đầy đủ của riêng nó mà không có tham chiếu đến bất kỳ bảng nào khác.
Với các lớp ở trên, bạn kết thúc với các bảng sau:
table Person
------------
int id (PK)
string firstname
string lastname
table Employee
--------------
int id (PK)
string firstname
string lastname
datetime startdate