![]() |
Stammbaum-Erzeugung
Hallo,
ich habe hier schon sehr oft, sehr erfolgreich Hilfe von Euch erhalten. Danke dafür. Und heute versuche ich es wieder. Geplant ist die Erstellung einer Genealogie-Anwendung, in der Benutzer ihre Stammbäume verwalten können. Die Daten sollen in einer Datenbank gespeichert werden (SQLite) mit folgenden Tabellen (sehr vereinfachtes Schema, da es um den Grundaufbau gehen soll): Persons
Families
Children
StartPerson kann zur Laufzeit im Programm jeder x-beliebigen Person in der Personen-Tabelle zugewiesen werden (beispielsweise über eine ListBox, die alle Personen abbildet), jedoch darf nur eine Person diesen True-Wert erhalten. Ausgehend davon, welche Person aktuell als StartPerson selektiert ist, soll dann vermutlich durch eine Baumstruktur, der Stammbaum erstellt werden. Dabei gibt es den Probanden (Root-Knoten) und zu diesem sollen nun rekursiv alle Verwandten aus der Datenbank ausgelesen werden (Vater, Mutter, Kinder, Geschwister, Partner(innen)). Diesen wiederum sollen solange alles Verwandten ausgelesen werden, bis es keine Verknüpfungen mehr gibt. Genau da hakt mein Denkansatz, da ich keinerlei Ahnung habe, wie ich das rekursiv umsetzen soll. Geplant ist nämlich eine Art Verwandtschaftsrechner, der ausgehend von der StartPerson zu einer x-beliebigen anderen Person der Personen-Tabelle den Verwandtschaftsgrad ausgibt (Sohn/Tochter, Frau/Mann, Großmutter/-vater, Urgroßmutter/-vater, Neffe, Enkel etc.), vorausgesetzt, es gibt ein Verwandtschaftsverhältnis. Wie könnte sich das Umsetzen lassen, wie schaut solch eine Datenstruktur aus bzw. ist der Datenbankansatz der richtige? Fragt mit dankenden Grüßen, hansklok |
AW: Stammbaum-Erzeugung
Ich würde sagen, du sammelst die Herkunftsknoten nach oben (Richtung Oppa&Omma) der beiden Personen und prüfst, ob es einen identischen Knoten gibt.
Wie das sql technisch aussieht, hängt von der konkreten Implementiernug des Stammbaums ab. |
AW: Stammbaum-Erzeugung
Zitat:
|
AW: Stammbaum-Erzeugung
Die Startperson gehört nicht zum Objekt Person.
Families würde ich PartnerShip o.ä. nennen, da eine Familie ja weiter gefasst ist. Children besser ParentShip ( im Sinne ist Kind von: Person -> Person). Diese würde ich auch unabhängig von PartnerShip modellieren ( unehelige Kinder, Alleinerziehende usw.) |
AW: Stammbaum-Erzeugung
Zitat:
|
AW: Stammbaum-Erzeugung
Zitat:
Zitat:
|
AW: Stammbaum-Erzeugung
Zitat:
|
AW: Stammbaum-Erzeugung
Zitat:
|
AW: Stammbaum-Erzeugung
Mit eine Datensatz pro Stammblatt
|
AW: Stammbaum-Erzeugung
Zitat:
Was macht jemand zum leiblichen Kind? Die Geburt, womöglich mit zwei bekannten biologischen Eltern und einem Datum. Wie kommt das Kind in eine andere Familie? Durch eine Adoption, mit extra Datum und dem anderem Verwaltungskram. Families ist schon eine 2er-Relation, ließe sich aber auch gut in Ereignisse umwandeln: Begin/Ende der Partnerschaft, Verlobung, Heirat/Trennung mit jeweils einem eigenem Datum. Als Datensammlung/Archiv würde ich solche Ereignisse nützlicher finden als einen einfachen Baum. Wenn du diese ganzen Informationen erfassen kann, kannst du die dann natürlich nach Belieben zu einer traditionellen Baumansicht zusammenfassen. BTW: Interessant wäre es auch, Ereignisse untereinander ordnen zu können ohne Zeitangaben zu kennen: z.B. A und B haben geheiratet vor C und D, B und D hatten ein Kind nach der der Heirat von E und F. Dazu passend wäre eine Unterstützung für Zeiträume: z.B. es ist bekannt das Herr A mit null/unbekannt zwischen 1960 und 1970 einen verschollenen Sohn hatten. |
AW: Stammbaum-Erzeugung
Wenn sich nichts grundlegend geändert hat, dann entstehen Kinder aus einer Verbindung von Mann und Frau.
Entgegen einiger Meinungen, muss diese Verbindung nicht zwangsläufig mit dem Prädikat "Ehe" oder "Beziehung" belegt sein. Sowas kann auch durch einen ONS entstehen. Wenn überhaupt, dann sind die Eltern ganz oder teilweise unbekannt. Das trifft auch auf Kinder von Alleinerziehenden zu. @BUG Ich sehe, wir verstehen uns ;) |
AW: Stammbaum-Erzeugung
Zitat:
Also um es besser nachvollziehen zu können hier die gesamten geplanten Tabellen: Personen Partnerschaften (ob mit oder ohne Kinder völlig egal) Kinder PersonenEreignisse (Geburt, Taufe, Tod, Bestattung, Konfirmation etc.) PartnerschaftsEreignisse (Ehe, Scheidung etc.) Sind aus einer Partnerschaft mehrere Kinder hervorgegangen, so sind diese automatisch, sofern sie nicht der Proband (StartPerson) sind als Geschwister anzuzeigen. Ist die StartPerson Mitglied mehrerer Partnerschaften, so sind die jeweiligen Partner anzuzeigen, nicht nur einer! |
AW: Stammbaum-Erzeugung
Zitat:
Grüße Mikhal |
AW: Stammbaum-Erzeugung
...ich weiß nicht, ob es noch relevant ist...
Ich würde das weiter verallgemeinern. Ich würde eine Tabelle für Personen, eine für Ereignisse und eine für Relationen vorsehen. Relationen wären dann z.B. Familien, Partnerschaften, Kinder, Adoptivkinder (die ja ebenfalls Kinder von Personen sind) etc. Es kann also auch Relationen von Relationen geben, ebenso wie Ereignisse von/zu Relationen etc. Nach meinem Kenntnisstand sind Stammbäume eher Netze als Bäume, besonders wenn z.B. mehrfache (Quer-)Beziehungen auftreten können. Ist nur eine Anregung... |
AW: Stammbaum-Erzeugung
Zitat:
![]() Da ist die Frage wie weit man es treiben will, ebenso ist die rechtliche und die biologische Vaterschaft, nicht immer deckungsgleich. Gruß K-H |
AW: Stammbaum-Erzeugung
Zitat:
Zitat:
|
AW: Stammbaum-Erzeugung
ot:
Zitat:
sorry, ich konnte nicht anders |
AW: Stammbaum-Erzeugung
Zitat:
Gruß K-H |
AW: Stammbaum-Erzeugung
Liste der Anhänge anzeigen (Anzahl: 1)
So, jetzt melde ich mich mal wieder zu Wort, nachdem das Thema anfangs Richtung "Harz IV-TV" abgedriftet war.
JA, das Thema ist noch sehr relevant. Ich habe mich eben mal angesetzt und ein vereinfachtes Datenbank-Schema erstellt (siehe Anhang). Daraus sollte die Struktur ersichtlich sein. Ich habe mich genau für diesen Aufbau entschieden, da es für die Speicherung genealogischer Daten die ![]() Meine Frage lautet wiederholt, wie sieht eine Datenbank-Abfrage zur Erstellung folgenden Baums aus (Beispiel) für die Vorfahren: | Max Mustermann | - Jonas Mustermann (Großvater) | - Inka Mustertest (Großmutter) | -- Hans Mustermann (Vater) | --- Elke Musterfrau (Mutter) | ---- Friedrich Mustermann (Bruder) // optional | ---- Heike Mustermann (Schwester) // optional bzw. für die Nachkommen: | Max Mustermann | - Martina Musterfrau (Partnerin) | -- Elias Mustermann (Kind) | -- Richard Mustermann (Kind) | - Paula Musterdamm (Partnerin 2) ![]() Anhang 44066 |
AW: Stammbaum-Erzeugung
Zitat:
![]() Ansonsten musst du dir halt rekursiv die nötigen Informationen abfragen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:16 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz