Che tipo di mappatura relazionale dell'oggetto è appropriato qui?

2

Nel mio database ho una tabella simile a questo Master (ID, Name, Attr1 ...). Ogni ID avrà almeno 1 voce in tabelle aggiuntive con attributi aggiuntivi. Queste tabelle sono specializzate nella tabella principale.

Spec1 (MasterID, Attr2, ...)

Spec2 (MasterID, Attr3, ...)

...

Quindi, non sono sicuro di come mapparlo al design orientato agli oggetti. Se ogni ID avesse una sola specializzazione, sarebbe facile, il master sarebbe una classe astratta e le specializzazioni sarebbero classi ereditate concrete ma in questo scenario, il singolo ID può avere tutte le specializzazioni e potrebbero essere aggiunte o rimosse durante la sua vita nel database . Ogni specializzazione ha regole aziendali uniche di c.

    
posta Nezreli 21.01.2014 - 09:43
fonte

1 risposta

3

Nella maggior parte dei casi non è molto utile prendere decisioni di modellazione con nomi come "Master" o "Spec1" (bisogna vedere i nomi effettivi e avere una nozione sulla loro semantica voluta). Ma nel tuo caso sembra abbastanza ovvio che stai cercando una relazione aggregata tra la classe / tabella "Master" e le classi / tabelle "Spec1", "Spec2". Può essere una relazione da "1 a {0,1}" o una da "1 a {0, n}", che dipende da quanti record / oggetti Spec si desidera consentire per record / oggetto master.

Non provare a usare "ereditarietà" per questi casi. L'ereditarietà è per le forme di specializzazione statiche , non per le specializzazioni che possono cambiare in fase di esecuzione.

    
risposta data 21.01.2014 - 13:33
fonte

Leggi altre domande sui tag