Klärung
Hallo,
da hab ich ja viel Verwirrung gestiftet. Entschuldigt.
Es ist wie drambeldier gesagt hat:„die 3 ids in Vertrag sind hoffentlich die fs-Attrtibute der 3 Beziehungen, die die Rollen abbilden. Dann ist nichts gegen die Modellierung zu sagen.“
Richtig. Die Tabelle Personendaten beinhaltet die Primärschlüssel und die Tabelle Verträge beinhaltet jeweils die Fremdschlüssel.
Es handelt sich hierbei um die Erfassung von Lebensversicherungen.
Die Personen bekommen eine ID zugeordnet. Im Vertrag können dann verschiede Personen auftauchen. Beispielsweise kann der Vertragsinhaber jemand anderes sein als die 1. versicherte Person oder 2. versicherte Person.
Und ich habe hierzu ein PHP Programm erstellt, das auch die Abfragen bereits konnte, aber eben für den Vetragsinhaber und der 1. VP (versicherte Person) und der 2. VP jeweils eine gesonderte Abfrage. So erhielt ich dann die Namen zu den zugehörigen Schlüsseln aus der Tabelle Verträge und habe in der Programmmaske die Namen dann ausgeben lassen. Am Anfang genügte das mir aber jetzt ist mir aufgefallen, dass es besser wäre alles in einer Abfrage zu schaffen.
Ich habe die Abfrage von drambeldier verwendet und etwas angepasst, sodass ich zuerst mal die Werte für den VN und die 1.VP erhalte.
select id_vertrag, vn.name AS VN, vp1.name AS VP from persdaten vn, persdaten vp1, vertraege_lv where vn.id_vn = vertraege_lv.id_vn and vp1.id_vn = vertraege_lv.id_vp1
Hier das Ergebnis:
id\_vertrag VN VP
19 Meier Meier
20 Meier Meier
21 Meier Meier
26 Meier Meier
29 Meier Meier
30 Hans Hans
Leider ist dieses Ergebnis unvollständig. Es gibt wesentlich mehrere Verträge und es werden nur die Angezeigt, bei denen VN und VP gleich sind.
Die erste Abfrage von Stephan bringt folgendes Ergebnis.
id\_vertrag vn vp1 vp2
1 NULL NULL NULL
2 NULL NULL NULL
3 NULL NULL NULL
6 NULL NULL NULL
9 NULL NULL NULL
10 NULL NULL NULL
11 NULL NULL NULL
13 NULL NULL NULL
14 NULL NULL NULL
15 NULL NULL NULL
16 NULL NULL NULL
17 NULL NULL NULL
18 NULL NULL NULL
19 0 0 0
20 0 0 0
21 0 0 0
22 NULL NULL NULL
23 NULL NULL NULL
24 0 NULL NULL
26 0 0 0
27 NULL NULL NULL
28 NULL NULL NULL
29 0 0 0
30 0 0 0
Die zweite
id\_vertrag Spalte id\_vn vorname name
1 vn NULL NULL NULL
2 vn NULL NULL NULL
3 vn NULL NULL NULL
6 vn NULL NULL NULL
9 vn NULL NULL NULL
10 vn NULL NULL NULL
11 vn NULL NULL NULL
13 vn NULL NULL NULL
14 vn NULL NULL NULL
15 vn NULL NULL NULL
16 vn NULL NULL NULL
17 vn NULL NULL NULL
18 vn NULL NULL NULL
19 vn 73 Franziska Meier
20 vn 75 Hans Meier
21 vn 84 Irene Meier
22 vn NULL NULL NULL
23 vn NULL NULL NULL
24 vn 75 Hans Meier
26 vn 75 Hans Meier
27 vn NULL NULL NULL
28 vn NULL NULL NULL
29 vn 75 Hans Meier
30 vn 80 Hans Hans
1 vp1 NULL NULL NULL
2 vp1 NULL NULL NULL
3 vp1 NULL NULL NULL
6 vp1 NULL NULL NULL
9 vp1 NULL NULL NULL
10 vp1 NULL NULL NULL
Und das stimmt auch nicht. Ich muss aber auch sagen, dass ich es mir nicht so komplex vorgestellt hätte. Hut ab vor Eurem Können.
Gruß