Dubbio su foreign Key

di il
3 risposte

Dubbio su foreign Key

Buonasera a tutti,
scrivo qui perchè vorrei avere un chiarimento sul passaggio dallo schema e/r allo schema relazionale.
Sto creando un database per un progetto che porterò agli esami di maturità e, nel suo modello concettuale è presente una gerarchia parziale che è stata "tradotta" nel modello relazionale in questo modo:

PAZIENTE(idPaziente{PK}, nome, cognome, indirizzo ,sesso, email, telefono, nazionalità, idDottore{FK})
PAZIENTE_GENERICO(idPaziente{FK}, dataInizioRicovero,descrizione)
PAZIENTE_ESTERNO(idPaziente{FK},password)

Dove PAZIENTE è l'entità padre, mentre PAZIENTE GENERICO e PAZIENTE ESTERNO sono le entità figlie.
Il mio dubbio è questo:
Nelle entità figlie devo inserire anche la chiave esterna del padre? O non sono necessarie, visto che c'è già idPaziente che fa sia da PK che FK?

3 Risposte

  • Re: Dubbio su foreign Key

    Ogni tabella deve avere sempre una propria PK univoca. Quindi anche la tabella figlia. Quest'ultima deve avere (di solito si mette alla fine della lista campi) la FK. Poi crei la relazione IDPaziente(PK) uno-a-molti IDPaziente(FK).
  • Re: Dubbio su foreign Key

    1) a che serve la tabella pazienti? risposta: per movimentare la tabella ricoveri...
    2) posso ricoverare un paziente esterno? Si utilizzando il paziente zero e attivando una tabella collegata chiamata ESTERNI oppure un paziente generico che non movimenta in automatico la tabella ricoveri... in questi casi non lasci traccia dei dati sensibili se non nella tabella ricoveri. alla ricerca puoi lanciare la query da tabella ricoveri e verificare che tipo di paziente si tratta...
  • Re: Dubbio su foreign Key

    Spiego meglio.
    Tabella pazienti: PAZIENTE(idPaziente{PK}, nome, cognome, indirizzo ,sesso, email, telefono, nazionalità, idDottore{FK})

    PAZIENTE_GENERICO(idPaziente{FK}, dataInizioRicovero,descrizione) se metti data inizio ricovero stiamo parlando di tabella RICOVERI dove i dati del paziente puoi prenderli dalla tabella pazienti (non necessariamente, puoi caricarli al momento senza archiviare i dati sensibili per esempio un esame di laboratorio esterno)

    PAZIENTE_ESTERNO(idPaziente{FK},password) questo mi sembra piu' un login e password per la tabella UTENTI

    pensa a pazienti come alla tabella PROVINCE serve solo per velocizzare un inserimento quando ti serve una provincia

    spero di essere stato piu' chiaro.
Devi accedere o registrarti per scrivere nel forum
3 risposte