Спосіб управління цим полягає в тому, що ваші підтипи повинні визначатися над типом (тобто ПК підтипу також є FK від підтипу до супертипу.)
Завдання полягає в розумінні того, чи є щось справді взаємовиключним чи ні. Атрибути підтипів повинні застосовуватися лише до тих підтипів, але, можливо, деякі підтипи взаємно виключають, а деякі - ні.
Якщо у вас є кілька взаємовиключних підтипів, ви можете використовувати атрибут розділення на супер-тип, щоб вказати, який із (двох або більше) взаємовиключних підтипів застосовується. Цей атрибут розділення може використовуватися з обмеженнями або тригерами для забезпечення взаємної ексклюзивності.
Якщо у вас є підтипи, які не є взаємовиключними, вони можуть існувати без використання атрибутів розділення.
Розглянемо цю модель даних:

У вас є три супер-типу, але FREE_SOFTWAREі NON-FREE_SOFTWAREтипи є взаємовиключними, на основі SOFTWARE.free_not_freeатрибута прапора поділу. Будь-який фрагмент програмного забезпечення також потенційно є OPERATING_SYSTEM, незалежно від того, вільний він чи ні.