Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Datenbankdesign, erstellen Sie eine Tabelle, um auf mehrere und eine Art rekursive Zeiger zu verweisen

Dies ist ein potenziell großes Datenbankschema, daher werde ich mich nur auf das Muskel-Skelett-System konzentrieren. Bevor ich darauf eingehe, sollte ich jedoch die Bedeutung der Datenbanknormalisierung erwähnen. Es ist wichtig! Und das aus vielen Gründen. Indem Sie jetzt eine gute, normalisierte Datenbank entwerfen, ersparen Sie sich vor allem spätere Probleme und stellen gleichzeitig die Integrität und Zuverlässigkeit Ihrer Daten sicher. Behalten Sie immer im Hinterkopf "Wie wird diese Datenbank wachsen", "Was ist, wenn ich weitere Systeme oder Ansichten oder Verteilungsmuster hinzufügen muss" usw. Tun Sie sich und Ihrem Arbeitgeber einen Gefallen und lesen Sie weiter in. A Kurzübersicht kann hier gelesen werden:http://databases.about.com/ od/specificproducts/a/normalization.htm

Zum Datenbankdesign:

Sie möchten redundante Spalten und Spalten, die Teilmengen anderer Spalten sind, aus einer Tabelle heraushalten und in ihre eigene einfügen. Sehen Sie sich zum Beispiel Ihre Lymphknotentabelle an. Was, wenn Sie in einem Jahr feststellen, dass Sie einen weiteren Lymphknoten hinzufügen müssen? Oder einen entfernen? Oder was ist, wenn Sie nur einen Knoten von einem Client betrachten? Anstatt es auf Ihre Weise zu tun, binden Sie den Tisch an ein größeres Objekt (ich bin kein Arzt, also bin ich mir nicht sicher, was die Antwort ist) wie Patient oder Lymphsystem. Oder beides. Beispiel:

Ein Patient hat viele Systeme (Eins-zu-Viele-Beziehung zwischen Patiententabelle und Systemtabelle) Ein Lymphsystem hat viele Organe (Eins-zu-Viele-Beziehung zwischen Lymphsystem und Organen) Ein System oder Organ hat viele Tests (eine Eins-zu-Viele-Beziehung zwischen Systemen und Tests).

Beispiel:

Diese Tabelle sollte nur Daten enthalten, die sich auf einen einzelnen Patienten beziehen

Diese Tabelle sollte nur Spalten enthalten, die für alle Systeme spezifisch sind. Systeme können Lymphsysteme, Atmungssysteme, Ausscheidungssysteme usw. sein.

TablePatient_TableSystems

Sie können nicht viele zu viele Beziehungen haben. Diese Tabelle löst das. Wenn Sie dies nicht hätten, müssten Sie in jeder Tabelle für jeden Patienten/jedes System redundante Aufzeichnungen führen

Löst viele zu viele für Systeme und Organe

Jetzt zum Testen. Sind die Tests organ- oder systemspezifisch? Oder beides? Dieses Beispiel sagt beides

TableTest

Hier gibt es viel, also denke ich, dass dies ein guter Ort ist, um anzuhalten. Lesen Sie die Datennormalisierung durch und wenn Sie Fragen haben, posten Sie hier zurück (oder senden Sie mir eine Nachricht).