Relazioni tra tabelle: Relazione molti molti

martedì 04 novembre 2008 - 12.48

Grazawily Profilo | Newbie

Salve a tutti

Non sono qui per esporre un problema riscontrato ma bensì per condividere idee riguardante l'argomento database e in particolare le modalità
di relazione tra 2 o più tabelle.
Vorrei dunque trattare a tal proposito la relazione molti-molti tra 2 tabelle e sarei molto grato se c fossero domande o interventi costruttivi.
Cos' è una relazione molti-molti? E' una relazione tra una tabella A e una tabella B nella quale ogni record nella tabella A possono essere
associati più records nella tabella B e viceversa. Un esempio classico può essere quello dei fornitori e degli articoli: ogni fornitore può avere
più articoli, e ogni articolo può appartenere a più fornitori.
E' chiaro quindi che questo tipo di relazione è costruita usando 2 relazioni uno-molti tra le 2 tabelle ma fisicamente è impossibile in quanto una
volta creata la prima relazione uno-molti non si può crearne un altra in quanto violerebbe l'integrità referenziale della prima e allora come si
risolve questo problema?
La soluzione è semplice dal punto di vista concettuale, un po' meno dal punto di vista gestionale: basta creare una terza tabella (nel nostro caso
la chiameremo FornitoriArticoli) nella quale inseriremo 2 campi di riferimento agli indici della tabella fornitori e articoli.

Esempio:

tblFornitori

ID (Primary Key)
Ragionesociale
PartitaIva
---------------
tblArticoli

ID (Primary Key)
Descrizione
Prezzo
---------------
tblFornitoriArticoli

FornitoreID
ArticoloID

Basterà creare le relazioni tra (tblFornitori.ID e tblFornitoriArticoli.FornitoreID) e (tblArticoli.ID e tblFornitoriArticoli.ArticoloID) e avremo una relazione
molti-molti.
Per gestire le tabelle invece la faccenda si fa un po' più complicata, infatti se si usano sottomaschere per la visualizzazione in dettaglio sia dei fornitori
che degli articoli non è possibile agganciare direttamente le tabelle in questione in quanto l'unica relazione che hanno entrambe è quella con la tabella
FornitoriArticoli.
Io ho in mente un paio di soluzioni per una corretta gestione delle tabelle ma posterò tali soluzioni ma sono da verificare, intanto invito chiunque ad
aggiungere commenti su quanto detto o a esporre altre idee e soluzioni in merito all'argomento.

Grazie.

Alla prossima!
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5