ehm, ho ripreso un po' questa situazione e mi son venuti altri dubbi =D
dunque, tornando all'esempio, mi trovo nella situazione che in prodotto comunque elenco tutti i prodotti del catalogo. ad esempio:
insert into prodotto (id, tipologia, prodotto, quantita, prezzo_unario)
(10, penna, biro, 50, 1),
(20, penna, staedtler, 50, 1),
(30, quaderno, pigna, 100, 2),
(40, quaderno, pigna, 100, 2),
...
successivamente mi ritrovo due tabelle (penna e quaderno) definite, ad esempio, così:
insert into penna (id, prodotto, penna, attributi_specifici)
(1, 10, biro nera, attributi),
(2, 20, staedtler rossa, attributi);
insert into quaderno (id, prodotto, quaderno, attributi_specifici)
(1, 30, bloc notes, attributi),
(2, 40, quaderno quadri, attributi);
così facendo, la somma del numero dei record delle tabelle figlie (penna, quaderno) daranno il totale dei record presenti nella tabella padre (prodotto).
io so che se devo lavorare con i prodotti (ma che in quel momento non mi servono gli attributi specifici), posso benissimo chiamare in causa la tabella prodotto, in quanto conterrà tutto l'elenco di tutti i prodotti presenti nel mio magazzino. qualora mi servissero eventuali descrizioni dettagliate, in base a prodotto.tipologia risalirei alla tabella figlia, dopodichè cercherei il valore di prodotto.id in <tabella_figlia>.prodotto.
è altrettanto vero che, potrei sempre avere l'attributo prodotto.tipologia ed avere indi anche un altro campo che referenzi la relativa tabella figlia; la mia ricerca degli attributi specifici indi avverrebbe confrontando prodotto.tipologia e, preso il valore prodotto.id_tabella_figlia, cercando tale valore fra le pk della tabella figlia.
così facendo accadrebbe che nelle tabelle figlie però si perderebbe ogni traccia del prodotto a cui si riferiscono (avrebbero solo gli attributi specifici e la relativa pk), visto che tale informazione viene conservata nella tabella prodotto (e sento puzza di sovracarico di responsabilità per quest'ultima).
che ne dite della mia piccola analisi del problema?
se qualcosa non è chiaro, basta chiedere...
grazie