Data un'entità che può avere un genitore, o può stare in piedi da sola, qual è il modo migliore per rappresentarlo in un database relazionale

2

Supponiamo di dover modellare le seguenti entità:

  1. Applicazione: applicazione inviata dagli utenti
  2. Studio di applicazione: lo studio per determinare se l'applicazione deve essere accettata
  3. Consultazione: una consultazione con una parte esterna come parte dello studio sull'applicazione. Le consultazioni con parti esterne potrebbero anche essere avviate indipendentemente da uno studio applicativo.

Quindi abbiamo l' Consultazione dell'entità che può avere lo Studio di applicazioni del genitore o stare da solo. Qual è il modo migliore per modellarlo in un database relazionale?

Vedo 2 opzioni:

  1. ha una chiave esterna nullable nella consultazione che fa riferimento a Studio di applicazioni
  2. hanno 2 tabelle: Consultazione dello studio dell'applicazione con una tabella application_study_id non valida e un'altra consultazione senza alcun riferimento allo studio delle applicazioni.

Qual è il modo migliore di fare pratica?

A CURA: Esiste una relazione ONE-TO-MANY tra studi applicativi e consultazioni. In altre parole, uno studio applicativo può avere più consultazioni. Hense la chiave straniera. Inoltre, uno studio applicativo può o non può avere una consultazione.

    
posta chrisl08 17.09.2016 - 07:54
fonte

1 risposta

3
  • L'opzione 2 è esclusa perché non hai bisogno di una tabella di join per le relazioni 1: M.

  • La relazione tra APPLICATION_STUDY e CONSULTATION è 0: M, non 1: M.

  • L'opzione 1 è quella corretta. Questo è il solito modo di modellare le relazioni 0: M: un FK nullable sul lato MANY.

EDIT: si noti che lo 0 in 0: M significa 0 o 1 , motivo per cui si ha un FK nullable su tutti i lati.

    
risposta data 17.09.2016 - 21:04
fonte

Leggi altre domande sui tag