Ciao a tutti,
l'esempio è molto specifico dunque cercherò di rappresentarlo con un "modello parallelo" più chiaro e comprensibile:
Queste sono le tabelle che ho attualmente in un db:
quartiere (id_quartiere, nome, ecc. ecc.)
via (id,_via, nome, ecc ecc.)
palazzo (id_palazzo, nome, ecc. ecc.)
appartamento (id_appartamento, numero, ecc. ecc)
Da analisi logica del sistema posso affermare che: quartiere contiene (relazione 1 a N) le vie; una via contiene (1 a N) i palazzi; un palazzo contiene (1 a N) gli appartamenti.
Devo fare diverse interrogazioni su queste tabelle e sulla loro relazione (ad esempio il nome del quartiere di un dato palazzo; oppure la via dove si trova un tale appartamento; ecc. ecc.).
Secondo voi è meglio (per favore giustificatemi la risposta):
SOLUZIONE A: legare in modo "scalare" le tabelle ovvero tramite chiavi esterne le singole tabelle: appartamento - palazzo; palazzo - via; via - quartiere
oppure
SOLUZIONE B: creare un'unica tabella con 4 campi contenenti gli indici delle altre...
Nella prima ipotesi credo che sia più "snello" a livello di gestione delle query e potrei distribuire il carico di lavoro su più tabelle inoltre aggiungendo anche altre chiavi esterne -seppur ridondanti - potrei velocizzare e semplifichino il lavoro di ricerca
Nella seconda soluzione però avrei tutto in una sola tabella con costi di manutenzione futuri più leggeri e possibilità di riorganizzare i dati molto più duttile nel caso di un ampliamento del sistema.
Concludo aggiungendo che anche se il tutto è espresso solo logicamente dovrebbe poi fisicamente girare su un MYSQL.
Grazie fin da ora a tutti per l'aiuto: mi sto logorando con questo quesito e magari è più facile di quel che penso (io sono comunque orientato alla prima soluzione)
Ciao
Luca