Eu quero abstrair uma hierarquia do mundo real em um modelo de banco de dados estrito (o mais estrito possível).
Meu problema é criar uma estrutura com um conjunto de regras isso ou isso, mas não os dois.
Eu tenho dois tipos de entidade,
Device , deve ser conectável a outro "dispositivo" como filho e como pai.
Combiner , pode ser conectado a vários "dispositivos" como pais e um como filho.
MAS(!) um dispositivo só pode ser conectado a um deles ao mesmo tempo. Então, como "dispositivo" como apenas um filho e um dos pais.
Eu tento visualizá-lo de alguma forma:
Todas as minhas ideias não são rígidas, mas procuro se existe um padrão para resolver isso sem regras em nível de aplicação. Em um modelo de classe eu resolveria isso com herança. Algumas ideias?