Ciclicità associazioni

di il
2 risposte

Ciclicità associazioni

Studiano progettazione DB, su appunti presi in rete, ho trovato come suggerimento quello di evitare come la peste la ciclicità delle
associazioni per evitare la ridondanza di dati. Mi chiedo se il motivo di tale scelta sia solo la ridondanza dei dati.
Infatti, non sono molto d'accordo con questa affermazione, o meglio non vale come legge universale, perchè in taluni casi, per
recuperare dati bisogna fare giri strani coinvolgendo logicamente associazioni che non hanno a che vedere
con la relazione logica in esame.

Esempio (con schema allegato):

paziente ricoverato in reparto
reparto fatto da medici
medici fanno visite
visite fatte da pazienti
E' chiaro che si crea un loop paziente->reparto->medico->visita->paziente.

A mio parere, però, questa ciclicità non è sbagliata ma è stata creata perchè possono esserci visite "sciolte" e visite legate ad un ricovero.
Nel caso di visite sciolte non ho necessità di fare i vari join per recuperare le informazioni. Ho detto qualche castroneria?
Allegati:
30567_0d18000b5ec2b29ef40ec8280d3b7c95.png
30567_0d18000b5ec2b29ef40ec8280d3b7c95.png

2 Risposte

  • Re: Ciclicità associazioni

    Un Medico tratta molti Pazienti (e anche lo stesso Paziente molte volte), indipendentemente se si tratta di "visita sciolta", "ricovero" o altro.
    Un Paziente ha a che fare con Medici molte volte.
    Serve una tabella di congiunzione che giustifichi la relazione Medici molti-a-molti Pazienti. Se non ti va di chiamarla Visite...chiamala Eventi (o Incontri) con i seguenti campi:
    IDEvento (PK)
    DataEvento
    TipoEvento (qui ci scrivi se si tratta di VisitaSciolta, Ricovero, ecc...)
    Descrizione (qui sei libero di scrivere quello che vuoi)
    IDMedico (FK)
    IDPaziente (FK)

    Relazioni:
    Medici.IDMedico uno-a-molti Eventi.IDMedico
    Pazienti.IDPaziente uno-a-molti Eventi.IDPaziente
  • Re: Ciclicità associazioni

    Non ho espresso bene il mio pensiero.
Devi accedere o registrarti per scrivere nel forum
2 risposte