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