[DATABASE] Creazione database

di il
9 risposte

[DATABASE] Creazione database

Salve,
sto creando un database per la gestione di un software ospedaliero. Ho impostato cosi la traccia:

Database contenente informazioni relative ai pazienti, ai ricoveri fatti in ospedale e i medici. Nello specifico:

PER I PAZIENTI: info anagrafiche, info della propria cartella clinica (una cartella con codice univoco differente per ogni ricovero). Nelle cartelle contenuti la diagnosi e le terapie. Delle terapie bisogna anche specificare durata e posologia.
PER I RICOVERI: Devono esserci informazioni di ciascun ricovero con data di inizio ricovero e dimissioni, reparto in cui il paziente è ricoverato. Devono essere gestite, per ogni ricovero, le informazioni relative ai medici ed al personale amministrativo che lo hanno seguito. Un ricovero puo essere gestito da un solo amministrativo ed in generale da piu medici.
PER I REPARTI: Per ciascun reparto si ha il nome, e il relativo medico primario.
PER IL PERSONALE: bisogna gestire le informazioni relative ai medici e al personale amministrativo, come matrice,nome,cognome ed il reparto presso cui ogni medico lavora. Il personale amministrativo esegue l'accettazione, quello medico invece interviene nella fase di degenza.


Per realizzare il database, ho progettato un CLASS DIAGRAM e lo SCHEMA RELAZIONE (allegato), e vorrei chiedere, cortesemente, se ci sono errori da correggere e come aggiungere "durata e posologia" in TERAPIE sia nel class diagram sia nello schema relazionale.

Grazie mille in anticipo!
Allegati:
21201_486cac4f3dc9f2ca43715fee93d3c242.png
21201_486cac4f3dc9f2ca43715fee93d3c242.png

9 Risposte

  • Re: [DATABASE] Creazione database

    Organizzare un database medico è una bella botta. Proviamo a razionalizzare qualcosina.
    Secondo me Anamnesi, Diagnosi, Ricoveri, Degenze, Terapie sono tutti "Fatti" o "Eventi" che vengono appunto fatti ai Pazienti.
    Alcuni programmatori ritengono che Pazienti e Medici sono entrambi Persone e potrebbero risiedere nella stessa tabella Anagrafica. Io sorvolerei su questo particolare e mi sta pure bene la loro divisione.
    Devi anche considerare che un Medico, molto più facilmente un Infermiere, oggi sta in Cardiologia, domani in Oculistica. Quindi non considererei i loro ruoli "fissi" ma vincolati a un periodo.
    Non entro nei particolari, ma a grandi linee io vedrei una struttura base di tabelle così:

    Pazienti
    IDPaziente (PK)
    Nome
    Cognome
    DataNascita
    ...tanti altri campi tipicamente anagrafici...

    Medici
    IDMedico (PK)
    NomeMedico
    CognomeMedico

    Eventi
    IDEvento (PK)
    DataEvento
    TipoEvento (qui scrivi se si tratta di Anamnesi, Visita, Diagnosi, Ricovero, Degenza, Terapia...)
    DescrizioneEvento
    IDMedico (FK)
    IDPaziente (FK)

    Relazioni:
    Pazienti.IDPaziente uno-a-molti Eventi.IDPaziente
    Medici.IDMedico uno-a-molti Eventi.IDMedico

    Ovviamente ho ridotto all'osso una struttura dalla quale io partirei. Consentimi pure una non adeguata conoscenza di vari termini tecnici tipici del tuo camnpo professionale. Ignoro al momento l'utilità dei Reparti.
  • Re: [DATABASE] Creazione database

    Ciao Osvaldo, innanzitutto ti ringrazio per la risposta.
    Lo schema relazionale che ho inserito nell'immagine, deve essere quello (a cui devo aggiungere la posologia della cura e la durata della terapia).
    I reparti mi servono per individuare il medico primario. Inoltre per medico suppongo solo medici, non infermieri ne altri ruoli. Stando al mio svolgimento, trovi qualche errore? Grazie ancora!
  • Re: [DATABASE] Creazione database

    L'errore macroscopico è che nella struttura delle tabelle mancano tutti gli ID (PK) come ti ha già suggerito Osvaldo.
    Codici o matricole non devono essere utilizzati come chiavi primarie.
    la chiave primaria (PK) deve essere un numero long autoincrementante che Access prevede proprio per tale scopo, e così vale per tutti i tipi di database (SQL Server, Oracle, MySQL, ...).
    Se si esce da questo schema, ci si fa del male da soli. E non si può più tornare indietro. Bisogna rifare tutto.

    Per quanto riguarda la struttura delle tabelle non entro nel merito, perché questo può essere frutto di un attenta analisi quindi, per poter esprimere una qualsiasi opinione (giusta o sbagliata che sia), è indispensabile conoscere quali sono le considerazioni che hanno portato alla determinazione di tale struttura.

    In definitiva, vedere un grafico di uno schema non dice nulla, se non c'è un'analisi che lo ha 'generato' e che lo giustifica.
  • Re: [DATABASE] Creazione database

    Partendo dallo schema relazionale, per la costruzione del class diagram ho ragionato cosi:
    Un paziente puo subire 1 o piu ricoveri mentre 1 ricovero puo essere attribuito ad un solo paziente.
    Ad un dato ricovero puo essere associato una sola cartella mentre una cartella e' relativa ad un solo ricovero.
    Un ricovero puo avvenire in un solo reparto, mentre un reparto puo avere piu ricoveri.
    Il personale, ovvero un amministrativo e 1 o piu medici possono seguire uno o piu ricoveri.
    Un medico puo lavorare in un solo reparto, mentre in un reparto ci possono essere uno o piu medici.
    Un medico puo essere primario di nessuno o al piu di un solo reparto, mentre un dato reparto ha un solo medico primario.
  • Re: [DATABASE] Creazione database

    ... Non comprendo la relazione uno a molti che c'è tra ricoveri e reparti ( mi riferisco all'immagine)... Non dovrebbe essere invertita?

    Ovvero corrispondere a quanto hai scritto nel precedente post...

    informaticizzando ha scritto:


    ...Un ricovero può avvenire in un solo reparto, mentre un reparto può avere piu ricoveri...
    Idem tra ricoveri e pazienti...

    Mi sembra che nell'immagine il lato "1" di tutte le relazioni 1 a * sia sempre nella tabella ricoveri...
  • Re: [DATABASE] Creazione database

    gibra ha scritto:


    la chiave primaria (PK) deve essere un numero long autoincrementante che Access prevede proprio per tale scopo, e così vale per tutti i tipi di database (SQL Server, Oracle, MySQL, ...).
    Se si esce da questo schema, ci si fa del male da soli. E non si può più tornare indietro. Bisogna rifare tutto.
    E' un'affermazione un pochino... eccessiva.
    Come tutto nella vita ha pregi e difetti tali per cui, nel caso di piccole cardinalità, i secondi sono maggiori dei primi.
  • Re: [DATABASE] Creazione database

    Buonasera a tutti, sto creando un piccolo Database e poché non sono molto bravo, ho riscontato 2 problemi che non riesco a risolvere:
    1) Inserendo una parola o parte di essa nella textbox vorrei che mi facesse la ricerca all'interno del database, poichè ora mi fa la ricerca solo della prima parola di ogni campo all'interno del database.

    2) Vorrei inoltre che non facesse differenza tra lettere maiuscole e minuscole

    Se qualcuno mi può aiutare...vi allego il codice, grazie
    Allegati:
    15375_ed4020b5b6bf068b1e4a98118e62eb24.zip
    15375_ed4020b5b6bf068b1e4a98118e62eb24.zip
  • Re: [DATABASE] Creazione database

    X Gianni24: questa discussione riguarda il problema dell'autore "informaticizzando".
    Per confrontarti sulle tue problematiche devi creare una nuova discussione.
  • Re: [DATABASE] Creazione database

    Dal mio punto di vista, concettualmente parlando, se tutte le persone hanno attributi comuni, quali nome, cognome, codice fiscale, indirizzo etc., allora sarebbe giusto avere un'entità Persona di cui poi ci siano le varie specializzazioni ovvero paziente e dipendente, quest'ultimo a sua volta suddiviso in medico, infermiere, amministrativo.
Devi accedere o registrarti per scrivere nel forum
9 risposte