Bunu yönetmenin yolu, alt türlerinizin süper tür tarafından belirlenmesi gerektiğidir (yani alt türün PK'si, alt türden süper türe kadar bir FK'dir.)
Buradaki zorluk, bir şeyin karşılıklı olarak münhasır olup olmadığını anlamaktır. Alt türlerin öznitelikleri yalnızca bu alt türlere uygulanmalıdır, ancak bazı alt türlerin birbirini dışlaması ve bazılarının uygun olmaması olabilir.
Bazı birbirini dışlayan alt türleriniz varsa, birbirini dışlayan (iki veya daha fazla) alt türden hangisinin geçerli olduğunu belirtmek için süper türde bir bölümleme özniteliği kullanabilirsiniz. Bu bölümleme özelliği, karşılıklı münhasırlığı zorunlu kılmak için kısıtlamalarla veya tetikleyicilerle birlikte kullanılabilir.
Karşılıklı olarak dışlanmayan alt türleriniz varsa, bunlar herhangi bir bölümleme özniteliği kullanılmadan var olabilir.
Bu veri modelini düşünün:
Üç süper türünüz var, ancak FREE_SOFTWARE
ve bölüm NON-FREE_SOFTWARE
türleri, SOFTWARE.free_not_free
bayrak bölümleme özniteliğine bağlı olarak birbirini dışlar . Herhangi bir yazılım parçası OPERATING_SYSTEM
, özgür olup olmadığına bakılmaksızın potansiyel olarak birdir.