Le relazioni tra le tabelle sono una delle cose piu importanti, un punto di partenza per sviluppare l'intero database.
Mettiamo di voler realizzare un database per gestire la videoteca mi sembra logico che:
1 - Un film possa avere piu attori e che viceversa un attore possa aver fatto piu film
2 - Un film possa avere anche piu di un regista (ci sono diversi esempi) e un regista possa aver fatto piu film
Non riesco a capire come impostare le relazioni supponendo di avere le seguenti tabelle Film - Attori - Registi.
Ho pensato di creare una relazione molti a molti tra la tabella Film e la tabella Attori creando una nuova tabella chiamata congiunzione che racchiude le chiavi esterne delle due tabelle precedenti ma non mi è chiaro come posso implementare inoltre una seconda relazione molti a molti tra la tabella Film e la tabella Registi per poi successivamente creare la maschera di inserimento basata sulla tabella film dalla quale ovviamente poter inserire per ogni film piu attori e piu registi.
Ma probabilmente per voi è un gioco da ragazzi.
Quindi come posso fare?
Grazie anticipatamente.
Ciao Simone.
Allora, ciao innanzitutto.
Per quello che ho imparato ti dico (anche se so che alla fine diversi modi di operare possono portare allo stesso obiettivo) e nel rispetto delle regole dell'ambiente dei Db relazionali:
Tabelle:
1 - Creazione tabella Film con campi univoci e Id Contatore Chiave;
2 - Creazione tabella Attori con campi univoci e Id Contatore Chiave;
3 - Creazione tabella Registi con campi come 1 e 2;
4 - Creazione, secondo tue necessità ed esigenze, di altre "n" tabelle con caratteristiche come le precedenti;
5 - Creazione tabella Film-Componenti con i campi id di cui sopra (naturalmente di tipo intero-numerico) e in particolare con l'id relativo a quello della tabella Film duplicabile; tale tabella rappresenta la tabella-cuscinetto o molti-a-molti.
Maschere:
1 - Maschera continua con Dati Origine tabella Attori (magari con normalizzazione degli spazi e obbligo di maiuscolo ecc.), per movimentare la tabella relativa.
2 - Maschera continua con Dati Origine tabella Registi (magari con normalizzazione degli spazi e obbligo di maiuscolo ecc.), per movimentare la tabella relativa.
3 - n Maschere continue con Dati Origine n tabelle (magari con normalizzazione degli spazi e obbligo di maiuscolo ecc.), per movimentare le tabelle relative.
4 - Maschera continua con Dati Origine tabella Film-Componenti dove i vari campi id (relativi alle tabelle dei punti precedenti) sono interfacciati tramite caselle combinate opportunamente basate e regolate.
5 - Maschera SINGOLA con Dati Origine tabella FILM con i campi relativi interfacciati con caselle di testo e caselle combinate opportunamente studiate, con inserita la SottoMaschera del punto 4
con un collegamento Dati Master-Slave = id(Film); tale Maschera deve avere efficace, tra gli altri, il controllo per evitare un'inserimento di un "figlio" (dal lato tabella Film-Componenti) a fronte di un "padre" inesistente (dal lato della tabella Film).
Diciamo che questo è solo l'inizio di una possibile trattazione dell'argomento "tabelle molti-a-molti" con la movimentazione dei dati relativi, senza l'utilizzo della relazione gerarchica primaria, che comporta vari vantaggi nel prosieguo della composizione delle strutture del programma.
Sperando di essere stato chiaro e, scusandomi di eventuali errori di scrittura, ti saluto.
Alla prossima.
Gianfranco.