tomminno
04-10-2010, 09:02
Mi trovo sempre di fronte al problema di come poter rappresentare al meglio una situazione in cui una tabella possa essere collegata a più tabelle tramite lo stesso campo.
Ad esempio ho una tabella generica per la descrizione dello stato di un servizio, e voglio legare questa tabella con le informazioni del servizio.
Ovviamente ogni servizio ha i propri dati e quindi ha una propria tabella.
Dato che nuovi servizi vengono aggiunti frequentemente e che comunque sono abbastanza numerosi (avere una trentina di chiavi esterne non mi sembra il massimo), la soluzione al momento è di avere una tabella TabellaServizi di appoggio contenente i valori Id-NomeTabella e nella tabella Servizi generica avere 2 colonne una con FK verso TabellaServizi e l'altra con Id non legato da alcun vincolo referenziale ma che indica l'Id del servizio vero e proprio. Per il recupero dei dati utilizzo viste specifiche che eseguono la join con la tabella indicata in TabellaServizi, perchè ovviamente le ricerche avvengono contestualmente ad un solo servizio.
Qualcuno ha una soluzione migliore?
Ad esempio ho una tabella generica per la descrizione dello stato di un servizio, e voglio legare questa tabella con le informazioni del servizio.
Ovviamente ogni servizio ha i propri dati e quindi ha una propria tabella.
Dato che nuovi servizi vengono aggiunti frequentemente e che comunque sono abbastanza numerosi (avere una trentina di chiavi esterne non mi sembra il massimo), la soluzione al momento è di avere una tabella TabellaServizi di appoggio contenente i valori Id-NomeTabella e nella tabella Servizi generica avere 2 colonne una con FK verso TabellaServizi e l'altra con Id non legato da alcun vincolo referenziale ma che indica l'Id del servizio vero e proprio. Per il recupero dei dati utilizzo viste specifiche che eseguono la join con la tabella indicata in TabellaServizi, perchè ovviamente le ricerche avvengono contestualmente ad un solo servizio.
Qualcuno ha una soluzione migliore?