Conversione delle relazioni uno a molti nelle relazioni

1

Controlla questo in sqlite:

Gli agenti possono effettuare prenotazioni per artisti e gli artisti possono anche effettuare prenotazioni per se stessi. Gli agenti possono solo effettuare prenotazioni per funzioni che coinvolgono interpreti. Un agente può essere responsabile di effettuare prenotazioni per più di un esecutore. Se un esecutore è rappresentato da un agente, ogni attore può avere un solo agente.

Lanaturaobbligatoriadellarelazioneperl'agenteèindicatadalcerchiosolido;ilcerchiovuotoindicaunarelazioneopzionaleperunesecutore.Ciòsignificachedeveesistereunarelazioneperrappresentaregliartisti,un'altrarelazioneperrappresentaregliagentieunaterzarelazioneperrappresentarequelleoccasioniincuigliartistihannoprenotatotramiteagenti.Icollegamentitraperformereagentisonomostraticonl'identificativodell'agentememorizzatosull'esecutoreappropriatonellaterzarelazione.

Relazione:esecutori

Relazione:agenti

Relazione:agente-esecutore

La mia domanda: è necessario creare una terza relazione (agente-attore) per rappresentare la relazione tra le due relazioni, esecutori e agenti?

qual è il problema se inserisco la chiave esterna nella relazione end (Performer) e inserisco null in alcuni valori in chiave esterna, senza creare una terza relazione (Agent-Performer)?

Per favore, aiutami in questo.

    
posta Eyad Khalel 10.03.2018 - 11:07
fonte

2 risposte

2

Questaèunarelazionemolti-a-uno.UnmodotipicoperimplementarequestoècheognirigaEsecutoreabbiauncampochiaveesternachecontieneilvaloredellachiaveprimariadell'agentecorrelato.

Quindino,nonènecessariocreareunaterzatabellapercreareunarelazioneuno-a-molti.

Ciòchelatuaterzatabellaconsenteèlacreazionediunarelazionemolti-a-molti:

Qualepuòessereschematizzatoinquestomodo:

Ocomequesto:

    
risposta data 10.03.2018 - 11:41
fonte
1

La tabella Agent-Performer è necessaria solo per rappresentare una relazione molti-molti tra agenti ed esecutori.

La relazione che hai descritto nel testo viene solitamente rappresentata con una relazione chiave estranea Agente-id nella tabella Esecutore.

L'unico problema, ma che è impossibile applicare in qualsiasi schema di database, è il requisito che ogni agente deve rappresentare almeno un esecutore. Tale requisito dovrà essere applicato esternamente, contando quante volte si verifica un agente-id nella relazione con gli attori e eliminando quegli agenti che non ne hanno.

    
risposta data 10.03.2018 - 11:36
fonte

Leggi altre domande sui tag