Cách để quản lý điều này là các loại phụ của bạn phải được xác định bởi siêu loại (tức là PK của loại phụ cũng là một FK từ loại phụ sang loại siêu.)
Thách thức là hiểu được một cái gì đó có thực sự loại trừ lẫn nhau hay không. Các thuộc tính của loại phụ chỉ nên áp dụng cho các loại phụ đó, nhưng cũng có thể một số loại phụ là loại trừ lẫn nhau và một số loại không.
Nếu bạn có một số loại phụ loại trừ lẫn nhau, thì bạn có thể sử dụng thuộc tính phân vùng trên siêu loại để chỉ ra loại phụ nào (hai hoặc nhiều) loại phụ áp dụng lẫn nhau. Thuộc tính phân vùng này có thể được sử dụng với các ràng buộc hoặc kích hoạt để thực thi tính độc quyền lẫn nhau.
Nếu bạn có các loại phụ không loại trừ lẫn nhau, thì chúng có thể tồn tại mà không cần sử dụng bất kỳ thuộc tính phân vùng nào.
Xem xét mô hình dữ liệu này:
Bạn có ba loại siêu, nhưng loại FREE_SOFTWARE
và NON-FREE_SOFTWARE
loại trừ lẫn nhau, dựa trên SOFTWARE.free_not_free
thuộc tính phân vùng cờ. Bất kỳ phần mềm nhất định nào cũng có khả năng là một OPERATING_SYSTEM
, bất kể nó có miễn phí hay không.