Datenbank Patient-Krankenhaus-Implantat(Hörimplantat)

s3rh47

Neuer Benutzer
Beiträge
4
Hallo Community , ich bin neu hier und brauche bitte Denkhilfe von Ihnen, wie ich meine Datenbank modellieren kann?

Ich versuche eine DB in 3. Normalform mit mindestens 4 Tabellen zu erstellen. Es müssen 1-n und m-n Beziehung geben. Daher brauche ich Denkhilfe.

Ich habe zwar sowas erstellt (Bild) aber hab das Gefühl, dass das es falsch ist.

Ich möchte jetzt folgende machen.

Es gibt 4 Implantat-Hersteller auf der Welt. Die sind Cochlear , MED-EL , Advanced Bionics und Oticon Medical.

Jede Hersteller hat 3 verschiedene Implantatypen: Das sind Knochenleitungsimplantat, Cochlea-Implantat und Hirnstammimplantat. Dies entscheiden die Ärzte , was der Patient bekommt. Aber die Firma und das Krankenhaus darf sich der Patient selbst aussuchen.

Jeder Patient bekommt implantat .
zB:

Ein Arzt hat entschieden, dass ein Patient für das linke Ohr ein Cochlea-Implantat und für das rechte Ohr ein Knochenleitungsimplantat bekommen soll. Der Patient entscheidet sich aber für das linke Ohr die Firma MED-EL für Cochlea-Implantat und möchtet im St.Pöltner(Österreich) Krankenhaus operiert werden. Und für das rechte Ohr hat er lieber für Advanced Bionics entschieden aber diesmal will er im Wiener AKH operiert werden.

Oder ein zweites Beispiel, dass ein Patient beidseitig im Salzburgerkrankenhaus zwei Cochlea-Implantat von der Firma Cochlear bekommt.

Ich muss solche Abfragen machen könnne, wer , wann , wo , operiert wurde und wer für linkes oder rechtes Ohr von Firma Cochlear ein Hirnstammimplantat bekommen hat.

Oder bring mir die Patienten, die nur im Salzburger und Wiener Krankenhaus von der Firma MED-EL für das rechte Ohr Knochenleitungsimplantat bekommen haben.


Daher erstelle ich eine Tabelle Krankenhaus und in dieser Tabelle sind 9 Krankenhäuser aus verschiedenen Städten drin und in diesen Krankenhäusern werden diese 3 Implantataten operiert.

Danach gibt es noch eine Tabelle Patient und in dieser Tabelle werden die Informationen des Patienten geben.

Dann noch eine Tabelle Firma , die Implantat herstellen.

Noch eine Tabelle , dass es nur 3 verschienede Implantat-Typen gibt.

Es gibt noch ein Ohr Tabelle , dass die rechte, linke oder beidseitig sind

Ich komme leider nicht ganz zu recht
😃
Brauche ich Denkhilfe.

2. Frage

-Wenn ein Patient für das Linke Ohr in einem Krankenhaus und das rechte Ohr in einem anderen Krankenhaus operiert wurde, steht hier zwischen Krankenhaus und Patient eine m-n Beziehung?

-Wenn ein Patient für das Linke Ohr Cochlea-Implantat bekommt und für das rechte Ohr Knochenleitungsimplnatat bekommt, steht hier auch eine m-n Bezeihung zwischen Patient und Ohr ?

-Wenn eine Firma 3 verschiedene Implantaten herstellt aber wenn 4 Firmen gibt, welche Beziehung steht hier ? Auch m-n Beziehung ?


Vielen Dank für die Hilfe.



Screenshot 2022-06-17 130949.png
 
Werbung:
Ich bin mir ziemlich sicher das das etwas kurz gedacht ist und würde daher mehr Tabellen daraus formen. Auch würde ich es etwas "astrakter" benennen, also z.B. die Entität Krankenhaus ist eigentlich der Operationsort, das kann ja auch mal ein Ort sein der zwar legitim ist aber eben kein Krankenhaus. Und du magst zwar nur Ohrimplantate machen aber wer weiß, vielleicht muss auch mal was ins Gehirn eingesetzt werden und das kommt dann von einem neuen Hersteller. Nicht wundern ich verwende erstmal sehr umfangreiche Namen.

Damit würde ich folgende Haupttabellen (Entitäten) erkennen:

Operationsort (anstelle von Krankenhaus)

Körperteil (anstelle von Ohren)

Implantat

Patient

Hersteller (Anstelle von Firma, es sei denn du möchtest neutral einfach alle Unternehmen / Organisationen in einer Tabelle führen wenn die sind ja im Prinzip gleich. Dann muss das ganze mit Zwischentabellen aufgefüllt werden so das z.B. eine Krankenhausträger auch in dieser Tabelle landet.)

Dazu kommen Beziehungen, ggf. mit Tabellen:

Operationsort <=n:m=> Körperteil (nicht jedes Krankenhaus kann jedes Körperteil operieren)

Körperteil <=n:m=> Implantat (Auch hier nicht jedes Implantat kann in jedes Körperteil.)

Operation ist eigentlich eine Zwischentabelle Patient <=n:m=> Operationsort (ja, ein Patient kann mehrfach in jedem Krankenhaus operiert werden)

Zwischentabelle_Patient_Operationsort <=n:m=> Körperteil (In einer Operation können auch mehrere Körperteile mit mehreren Implantaten betroffen sein. Das der Patient Ohren hat ist klar und muss nicht abgebildet werden, die Beziehung würde ich als überflüssig ansehen. Wichtig ist, was wann wo operiert wurde, die Beziehung läuft also gegen die schon bestehende Zwischentabelle.)

Zwischentabelle_Patient_Operationsort <=n:m=> Implantat (Siehe oben. Am besten du bildest diese beiden Positionen in einer Tabelle ab dann kannst du nachhalten, welches Körperteil welches Implantat in welcher Operation bekommen hat.)

Hersteller <=1:n=> Implantat (Wenn du sagst ein Implantat kann von mehr als einem Hersteller produziert werden wäre es hier eine n:m Beziehung und ich würde den Begriff Implantattyp verwenden. Ich denke mal die Implantate sind nicht exakt identisch oder durchgenormt, ich denke jedes Implantat ist Herstellerspezifisch aber ich mag mich da irren.)
 
also ich würde es als SQL in etwa so machen, stark vereinfacht. nur notwendigste Attribute zur Darstellung:

Code:
postgres=# create table hersteller (id int primary key, name text);
CREATE TABLE
postgres=# create table typen (id int primary key, name text);
CREATE TABLE
postgres=# create table krankenhaus (id int primary key, name text);
CREATE TABLE
postgres=# create table patient (id int primary key, name text);
CREATE TABLE
postgres=# create table ohren (id int primary key, patient int references patient, ohr text, krankenhaus int references krankenhaus, typ int references typen, hersteller int references hersteller, check (ohr in ('rechts','links')));
CREATE TABLE
postgres=#

Das ist flexibel genug, später noch neuere Typen und weitere Hersteller aufzunehmen.
 
also ich würde es als SQL in etwa so machen, stark vereinfacht. nur notwendigste Attribute zur Darstellung:

Code:
postgres=# create table hersteller (id int primary key, name text);
CREATE TABLE
postgres=# create table typen (id int primary key, name text);
CREATE TABLE
postgres=# create table krankenhaus (id int primary key, name text);
CREATE TABLE
postgres=# create table patient (id int primary key, name text);
CREATE TABLE
postgres=# create table ohren (id int primary key, patient int references patient, ohr text, krankenhaus int references krankenhaus, typ int references typen, hersteller int references hersteller, check (ohr in ('rechts','links')));
CREATE TABLE
postgres=#

Das ist flexibel genug, später noch neuere Typen und weitere Hersteller aufzunehmen.

Wo muss ich diese Code reingeben? Wir haben bisher nur MySQL gelernt.
 
Ich bin mir ziemlich sicher das das etwas kurz gedacht ist und würde daher mehr Tabellen daraus formen. Auch würde ich es etwas "astrakter" benennen, also z.B. die Entität Krankenhaus ist eigentlich der Operationsort, das kann ja auch mal ein Ort sein der zwar legitim ist aber eben kein Krankenhaus. Und du magst zwar nur Ohrimplantate machen aber wer weiß, vielleicht muss auch mal was ins Gehirn eingesetzt werden und das kommt dann von einem neuen Hersteller. Nicht wundern ich verwende erstmal sehr umfangreiche Namen.

Damit würde ich folgende Haupttabellen (Entitäten) erkennen:

Operationsort (anstelle von Krankenhaus)

Körperteil (anstelle von Ohren)

Implantat

Patient

Hersteller (Anstelle von Firma, es sei denn du möchtest neutral einfach alle Unternehmen / Organisationen in einer Tabelle führen wenn die sind ja im Prinzip gleich. Dann muss das ganze mit Zwischentabellen aufgefüllt werden so das z.B. eine Krankenhausträger auch in dieser Tabelle landet.)

Dazu kommen Beziehungen, ggf. mit Tabellen:

Operationsort <=n:m=> Körperteil (nicht jedes Krankenhaus kann jedes Körperteil operieren)

Körperteil <=n:m=> Implantat (Auch hier nicht jedes Implantat kann in jedes Körperteil.)

Operation ist eigentlich eine Zwischentabelle Patient <=n:m=> Operationsort (ja, ein Patient kann mehrfach in jedem Krankenhaus operiert werden)

Zwischentabelle_Patient_Operationsort <=n:m=> Körperteil (In einer Operation können auch mehrere Körperteile mit mehreren Implantaten betroffen sein. Das der Patient Ohren hat ist klar und muss nicht abgebildet werden, die Beziehung würde ich als überflüssig ansehen. Wichtig ist, was wann wo operiert wurde, die Beziehung läuft also gegen die schon bestehende Zwischentabelle.)

Zwischentabelle_Patient_Operationsort <=n:m=> Implantat (Siehe oben. Am besten du bildest diese beiden Positionen in einer Tabelle ab dann kannst du nachhalten, welches Körperteil welches Implantat in welcher Operation bekommen hat.)

Hersteller <=1:n=> Implantat (Wenn du sagst ein Implantat kann von mehr als einem Hersteller produziert werden wäre es hier eine n:m Beziehung und ich würde den Begriff Implantattyp verwenden. Ich denke mal die Implantate sind nicht exakt identisch oder durchgenormt, ich denke jedes Implantat ist Herstellerspezifisch aber ich mag mich da irren.)

Ich möchte einpaar bestimmte Krankenhäuser haben, man dort obengenannte Operationen erhalten, und will auch nicht andere Körperteile oder Hersteller reinsetzen.. Also Krankenhaus , Hersteller , Implantatypen sollen kostant bleiben. Nur der Patient darf vermehrt werden.

Bezüglich zu deinem letzten Text

Jeder Hersteller herstellt 3 implantaten. ( Ich denke hier braucht man gar keine Beziehung vielleicht)

zB:

Cochlear herstellt Hirnstamm , cochlea , knochen
Medel herstellt Hirnsatmm , cochlea , knochen
AB herstellt Hirnstamm , cochlea , knochen

Wenn sie konstant bleiben, und sich nicht vermehren, glaube ich braucht man gar keine Beziehung oder ?
 
Cochlear herstellt Hirnstamm , cochlea , knochen
Medel herstellt Hirnsatmm , cochlea , knochen
AB herstellt Hirnstamm , cochlea , knochen

Wenn sie konstant bleiben, und sich nicht vermehren, glaube ich braucht man gar keine Beziehung oder ?
Wenn man sowas (Stammdaten) in eine Tabelle tut und nur via RI darauf verweist, erspart man sich auch gleich Probleme mit Schreibfehlern.

Hirnstamm, Hirnsatmm ;-)
 
Werbung:
Das schaut aus meiner Sicht schon besser aus, es gibt aber eventuell noch Probleme:

Wenn in einer Operation mehr als ein Ohr operiert wird, gibt es dann 2 Datensätze in "operiert"? Wenn ja macht es keinen Sinn das Implantat n:m zuzuordnen (genauso Hersteller), dann gilt 1:n. Wenn nein hast du das Problem das du nur ein Ohr setzen kannst, die n:m Beziehungen wären dann aber richtig.

Ich würde "implantiert" und "bekommt" zu einer Tabelle machen und hier das Atribut "Ohr" setzen. Dann kann in einer Operation auch an zwei Ohren operiert werden (2 Datensätze in der Tabelle implantiert/bekommt) und je Ohr kann das Implantat und der Hersteller gesetzt werden. Das muss in eine Beziehungstabelle weil sonst bei 2 Datensätzen in "implantiert" und 2 in "bekommt" nicht klar ist welches Implantat von welchem Hersteller kommt.
 
Zurück
Oben