12 messaggi dal 21 settembre 2014
Buonasera a tutti, ho un problema che mi affligge su un progetto che sto sviluppando e vorrei sapere la vostra opinione:

Ho un gestionale con le solite tabelle: clienti, fornitori, articoli, macchinari, ecc ecc tutte con chiave primaria ID che è un intero progressivo. Tutte queste entità possono avere uno o più allegati, ho quindi creato la tabella allegati con le informazioni del file (il file fisico sta poi sul disco).

Ora il problema è: Come legare le varie entità ai record nella tabella file?
Le 2 idee che ho avuto sono:
1) creare sulla tabella File una FK per ogni entita (IdCliente, IdFornitore ecc) di tipo Nullable e cosi legare le entità, ma cosi facedto il numero delle chiavi è considerevole e ad ogni aggiunta di una nuova entita va aggiornata anche la tabella File.

2) Rinunciare all'integrita referenziale (gestita poi a SW) e mettere 2 FK sulla tabella file una che mi identifica il tipo dell'entità e l'altra l'Id con cui il record è collegato. In questo modo avrò meno colonne inutili ma va da se che perdo l'integrità e ciò che ne può derivare.

Se esiste un terzo modo mi piacerebbe conoscerlo altrimeti quale dei 2 portereste avanti voi?

Grazie
843 messaggi dal 08 aprile 2009
Quando avvi la strada a creare una unica tabella contenitore purtroppo, secondo me e potrei sbagliarli, l'integrità referenziale la devi un pò mettere da parte.
Creare una tabella con una miriade di colonne FK non ha molto senso.
Che cosa non vorresti perdere dell'integrità referenziale?
Il fatto di eliminare in automatico i record nella tabella allegati ad esempio? ce l'hai comunque attivando dei trigger.

Io sinceramente quando ho optato per diverse ragioni per questa strada ho lasciato stare l'integrità referenziale.
Poi ogni caso va studiato perchè se il gioco ti fa perdere di prestazioni allora a volte si torna indietro e ad esempio si fa una tabella specifica e quindi:
Clienti --> AllegatiClienti
Fornitori --> AllegatiFornitori

e così via...
Però ripeto bisognerebbe vedere le statistiche del tuo progetto

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.