Các loại ô tô khác nhau là một ví dụ của một vấn đề chung xuất hiện nhiều lần trong mô hình dữ liệu. Nó được gọi là "khái quát hóa / chuyên môn hóa" trong mô hình ER và "siêu lớp / lớp con" trong mô hình đối tượng.
Một người lập mô hình đối tượng sử dụng các tính năng kế thừa được tích hợp trong mô hình đối tượng để giải quyết vấn đề khá dễ dàng. Các lớp con chỉ đơn giản là mở rộng siêu lớp.
Người lập mô hình quan hệ phải đối mặt với một vấn đề. Làm thế nào để thiết kế các bảng sao cho mô phỏng những lợi ích mà người ta sẽ nhận được từ thừa kế?
Kỹ thuật đơn giản nhất được gọi là kế thừa bảng đơn . Dữ liệu về tất cả các loại ô tô được nhóm thành một bảng duy nhất cho ô tô. Có một cột, car_type, nhóm tất cả các xe cùng một loại. Không có chiếc xe có thể thuộc nhiều hơn một loại. Nếu một cột không liên quan đến ô tô điện, nó sẽ bị bỏ lại NULL trong các hàng liên quan đến ô tô điện.
Giải pháp đơn giản này hoạt động tốt cho các trường hợp nhỏ hơn và đơn giản hơn. Sự hiện diện của rất nhiều NULL thêm một chút nhỏ vào chi phí lưu trữ và một chút cho chi phí truy xuất. Nhà phát triển có thể phải học logic ba giá trị SQL nếu các bài kiểm tra boolean được thực hiện trên các cột không thể. Điều này có thể gây trở ngại lúc đầu, nhưng người ta đã quen với nó.
Có một kỹ thuật khác, được gọi là kế thừa bảng lớp . Trong thiết kế này, có các bảng riêng biệt cho gas_car, Electric_car và hybrid_car, ngoài ra còn có một bảng kết hợp, xe hơi, cho tất cả chúng. Khi bạn muốn tất cả các dữ liệu về một loại xe cụ thể, bạn tham gia bảng xe với bảng chuyên dụng phù hợp. Có ít NULL hơn trong thiết kế này, nhưng bạn tham gia nhiều hơn. Kỹ thuật này hoạt động tốt hơn trong các trường hợp lớn hơn và phức tạp hơn.
Có một kỹ thuật thứ ba được gọi là khóa chính được chia sẻ. Kỹ thuật này thường được sử dụng kết hợp với kế thừa bảng lớp. Các bảng chuyên biệt cho các lớp con có, như là khóa chính của chúng, một bản sao của khóa chính của mục tương ứng trong bảng ô tô. Cột id này có thể được khai báo là cả khóa chính và khóa ngoại.
Điều này liên quan đến việc lập trình thêm một chút khi những chiếc xe mới được thêm vào, nhưng nó làm cho việc tham gia trở nên đơn giản, dễ dàng và nhanh chóng.
Các siêu lớp và các lớp con xảy ra mọi lúc trong thế giới thực. Đừng sợ. Nhưng hãy kiểm tra thiết kế ban đầu của bạn để thực hiện. Nếu lần thử đầu tiên của bạn đơn giản và âm thanh, bạn sẽ có thể điều chỉnh nó để tăng tốc nó.