# Fortlaufende Nummerierung innerhalb mehrerer Tabellen



## Hallo123 (28. Mai 2011)

Folgende Problematik: Ich versuche eine fiktive Praxisdatenbank zu erstellen, die die Stammdaten der Patienten speichert. Zugriff erfolgt mithilfe einer GUI. Da es beim Privatversicherten egal ist, wo er versichert ist etc. will ich die Tabellen aufteilen, damit keine Nulstellen entstehen:

In eine Patient Tabelle in der die Stammdaten wie Name etc drin sind, mit Primärschlüssel PNr.Ein Attribut in dieser Tabelle muss Versicherungsart heissen, dort soll entweder stehen G+PNr oder P+PNr, diese soll weiterverweisen auf die anderen Tabellen Gesetzlich versichert, sowie Privatversichert.

 Es ist aber nur möglich eine Relation an einem Attribut zu erstellen. Wie könnte ich das Problem lösen? Mit einer Brückentablle hätte ich ja dann wieder Nullstellen oder?


----------



## Gast2 (28. Mai 2011)

Das macht eigentlich wenig Sinn.

Normalerweise hätte ich erstmal nur zwei Tabellen:
Patientenstammdaten
Id
Name
Vorname
...
Versicherungsstatus (Gesetzlich oder privat, optional)
Id_Versicherung

Und dann halt eine Tabelle mit den Versicherungsstammdaten:
Id
Name
...

Bevor du einen Patienten abspeicherst suchst du dir aus der Tabelle der Versicherungen die richtige Id und gut ist. Wenn jemand GAR nicht versichert ist dann kannst du immer noch in der Versicherungstabelle eine Zeile einfügen:
ID = 1
Name = Unversichert, Patient trägt kosten privat

Und dann halt nutzen.


----------



## Hallo123 (28. Mai 2011)

ja, das Problem hierbei sit aber, dass beim gesetzlichversicherten nicht nur die kknr und kassenname dazukommen, sondern auch Mitgliedsnr, sowie ob er Rentner, Mitglied oder Familienmitglied ist, was ja dann nicht mehr von den Versicherungsstammdaten abhängt. Diese müsste ich dann in der Patientenstammdatentabelle abspeichern und dort würden dann beim Privatversicherten Nullstellen entstehen. Würdest du diese einfach nur mit irgendeinem Text füllen, also Mitgliedsnr = existiert nicht?


----------



## Spacerat (29. Mai 2011)

Also der Versicherungsstatus des Patienten hat im Prinzip nichts in seinen Stammdaten verloren, weil, wie du schon sagst nicht feststeht, ob er überhaupt oder ob er über jemanden anderes Versichert ist. Deswegen gehört dort eher eine "referenced Data ID" bestehend aus einem Tabellennamen und einer DatensatzID innerhalb dieser Tabelle hin. So lassen sich verschiedenste Datensätze dort einpflegen. Natürlich kann man sich auch eine Tabelle "referenced_Data" anlegen und dann diese ID's in die Stammdaten des Patienten einpflegen. Um nun herauszufinden ob und wenn ja welche Versicherung hinter der Referenz des Patienten steckt, muss diese Referenz über die Tabellen Patienten und Versicherungen soweit zurückverfolgt werden, bis sie eine Versicherung - und sei es auch Versicherung.NONE  - als ergebnis liefert.


----------



## Marcinek (29. Mai 2011)

Ich glaube hier ist ein ähnliches Thema:

http://www.java-forum.org/java-basics-anfaenger-themen/118993-einfache-datenbankabfrage.html


----------

