Ho uno scenario focalizzato sulle seguenti tabelle:
Artisti
IDArtista (contatore, chiave primaria)
Artista
Titoli
IDTitolo (contatore, chiave primaria)
Titolo
IDAutore1 (numerico)
Discriminante (testo)
N (numerico)
Autorità
IDAutorità (contatore, chiave primaria)
IDAutore (numerico)
IDTitolo (numerico)
Relazioni:
Artisti.IDArtista uno-a-molti con Autorità.IDAutore
Titoli.IDTitolo uno-a-molti con Autorità.IDTitolo
Artisti.IDArtista uno-a-molti con Titoli.IDAutore1
So che può apparire strano vedere l'ultima relazione. Me ne rendo conto soltanto adesso. Occorre considerare che un Titolo, a parità di Titoli.Titolo, necessità di uno o più campi atti a discriminare eventuali duplicati. Uno di questi è proprio l'Autore che, nei casi di autori multipli, io prendo il Primo poichè giudico che:
1 - Yesterday di Lennon John, McCartney Paul (questo esiste nella realtà)
2 - Yesterday di Lennon John, Springsteen Bruce, Turner Tina (reputo impossibile che Lennon John scriva un altro Yesterday con diverso testo e musica con altri autori)
3 - Yesterday di Laviosa Osvaldo, Dalla Lucio, Bubola Massimo (questo titolo può esistere).
Il campo IDAutore1 svolge soltanto un ruolo discriminante. Quando voglio sapere tutti gli Autori di un certo IDTitolo, sfrutto sempre la tabella Autorità.
Posso eliminare la terza relazione, che già elimino in molte/tutte le query che coinvolgono le suddette tabelle, per evidente inutilità?