Supponiamo di avere un'entità denominata Software e due sottotipi FreeSoftware e NonFreeSoftware. L'entità NonFreeSoftware ha attributi come data di acquisto, fornitore, ecc. L'entità FreeSoftware ha attributi come licenza, URL del codice sorgente, ecc.
Quindi, se voglio modellare un'altra entità, OperatingSystem, come dovrei farlo? Esiste una relazione "è una" con il software ma una relazione "o / o" con FreeSoftware e NonFreeSoftware.
Penso che mi manchi qualcosa nel modo in cui sto analizzando questa gerarchia.