Join uno-a-molti non necessario

di il
2 risposte

Join uno-a-molti non necessario

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à?

2 Risposte

  • Re: Join uno-a-molti non necessario

    Come fai a scegliere il primo? In ordine alfabetico?
    3 - Yesterday di Laviosa Osvaldo, Lennon John, Dalla Lucio, Bubola Massimo (questo titolo può esistere?).
  • Re: Join uno-a-molti non necessario

    Hai messo il dito nella piaga logico-tecnica. In linea generale dovrebbe valere il primo in ordine alfabetico, ma in certi casi più noti, preferisco mettere quello più di spicco. Ti faccio un esempio.
    La canzone "Don Raffaè" è firmata da De Andrè Fabrizio e Bubola Massimo. Fatto sta che tutti quanti la conosciamo come quella di De Andrè Fabrizio. In questo caso preferisco De Andrè Fabrizio. Mi chiederai: che succede se io o qualcuno dovesse digitare in tabella Titoli sia:
    Don Raffaè - De Andrè Fabrizio
    Don Raffaè - Bubola Massimo
    Teoricamente la tabella Titoli dovrebbe accettarli entrambi in quanto i due Titoli non sarebbero univoci tecnicamente, essendo discriminati da Autore1, ma logicamente/intellettualmente sì, non deve essere commesso l'errore digitativo da parte dell'utente. Si dà il caso che utilizzo la tabella Titoli in altre maschere con tanto di caselle combinate che controllano sempre il contenuto che, in qualche modo dovrebbe limitare tale danno...ma stiamo parlando di tutt'altro, gestibile con altri strumenti.
Devi accedere o registrarti per scrivere nel forum
2 risposte