Mysql
 sql >> Database >  >> RDS >> Mysql

progettazione del database, creare una tabella per puntare diversi e una sorta di puntatori ricorsivi

Questo è uno schema di database potenzialmente di grandi dimensioni, quindi mi concentrerò solo sul sistema muscoloscheletrico. Prima di entrare in questo, però, dovrei menzionare l'importanza della normalizzazione del database. È importante! E per molte ragioni. Principalmente, progettando un buon database normalizzato ora si risparmiano problemi lungo la strada garantendo al contempo l'integrità e l'affidabilità dei dati. Tieni sempre nella parte posteriore della tua mente "Come crescerà questo database", "E se avessi bisogno di aggiungere più sistemi o viste o modelli di distribuzione", ecc. Fate un favore a voi stessi, al vostro datore di lavoro, e continuate a leggere. A una breve panoramica può essere letta qui:http://databases.about.com/ od/specificproducts/a/normalization.htm

Alla progettazione del database:

Si desidera mantenere la colonna ridondante e le colonne che sono sottoinsiemi di altre colonne fuori da una tabella e nella propria. Ad esempio, guarda la tabella dei linfonodi. E se tra un anno ti rendessi conto che devi aggiungere un altro linfonodo? O rimuoverne uno? O cosa succede se stai guardando solo un nodo da un client? Invece di farlo a modo tuo, lega il tavolo a un oggetto più grande (non sono un medico, quindi non sono sicuro di quale sia la risposta) come Patient o Lymph Systems. O entrambi. Esempio:

Un paziente ha molti sistemi (relazione da uno a molti tra il tavolo del paziente e il tavolo dei sistemi)Un sistema linfatico ha molti organi (relazione da uno a molti tra il sistema linfatico e gli organi)Un sistema, o organo, ha molti test (una relazione da uno a molti tra sistemi e test).

Esempio:

Questa tabella dovrebbe contenere solo dati relativi a un singolo paziente

Questa tabella dovrebbe avere solo colonne specifiche per tutti i sistemi. I sistemi possono essere sistemi linfatici, sistemi respiratori, sistemi escretori, ecc.

TablePatient_TableSystems

Non puoi avere molte o molte relazioni. Questa tabella risolve questo problema. Se non lo avevi, dovresti conservare record ridondanti in ogni tabella per ogni paziente/sistema

Risolve molti a molti per sistemi e organi

Ora per i test. I test sono specifici per organi o sistemi? O entrambi? Questo esempio dirà entrambi

TableTest

C'è molto qui, quindi penso che questo sia un buon posto dove fermarsi. Leggi la normalizzazione dei dati e quando hai domande, posta di nuovo qui (o inviami un messaggio).