Hallo,
arbeite mit einer MySql Datenbank (glaube 4.1.irgendwas)
Habe mal eine allgemeine Frage zum Aufbau:
Ich habe u.a. folgende Tabellen:
- Person
- Werk
- Person zu Werk
- Ereignis
- Ereignis zu Person
- Ereignis zu Werk
In der Persontabelle werden allgemeine Infos zu Personen (Namen, Geburtstag und Ort, Sterbetag und Ort, etc) gespeichert
In der Werktabelle werden werden Informationen zu Werken (Titel, Inhalt, Erscheinungsjahr, etc.) gespeichert.
In Person zu Werk Tabelle werden die Verknüpfungen gespeichert: Personen_id, Werk_id, Info zu VErknüpfung (z.B. "Hat geschrieben" oder "beruft sich auf...")
Ereignistabelle speichert allgemeine Historische Ereignisse (WW II , Entdeckung Amerikas, etc.)
Ereignis zu Person und Ereignis zu Werk speichern jeweils die RElationen zu den Ereignissen, wenn es welche gibt und diese nicht rein durch die LEbens- bzw Werkdaten gegeben sind (also ein Buch das während des 2 WW erschienen ist, wird nicht unbedingt mit dem Ereigniss verknüpft, da das Erscheinungsjahr verknüpfung genug ist. Ein Werk allerdings dass sich direkt auf ein Ereignis bezieht, oder ein Ereignis/Epoche stilprägend beeinflusst oder verursacht hat wird schon verknüpft.
Soweit so gut.
Nun möchte ich die Relationen zwischen Werken und Werken / Personen und Personen sowie Werken und Personen darstellen. Allerdings nicht nur die Relationen des ersten Grades sondern min. auch des 2 Grades (ob noch tiefer Sinn macht weiss ich noch nicht)
z.B.
Person 1 schreibt Werk 1
Person 2 schreibt Werk 2 und bezieht sich dabei auf Werk 1
Person 2 schreibt Werk 3
Habe also
Person 1 -> Werk 1 (direkt)
Person 1 -> Werk 2 (rückbezogen)
Person 2 -> Werk 2 (direkt)
Person 2 -> Werk 1 (direkt)
Werk 1 -> beinflusst -> Werk 2
Werk 3 -> gleicher Author wie Werk 2
Werk 3 -> Beziehung 2 Grades mit Werk 1
Hoffe das ist einigermaßen verständlich. Frage, kann man das mit der o.g. DB Struktur so darstellen oder muß man da noch Tabellen dazwischen schalten, welche Verbesserungsvorschläge hättet ihr?
Wie müßte die Abfrage sein, damit keine doppelten Datensätze ausgegeben werden - sprich jeder Datensatz tatsächlich nur einmal abgefragt wird (insbesondere bei der Werk zu Werk Beziehung)?
Grüße,
Kermit