Hierarchien in einer relationalen datenbank

2 Antworten

Wir wollen also eine Baumstruktur in eine Tabelle abbilden: Ich würde jedem Knoten eine eindeutige ID (Node) vergeben und die Eltern-Kind-Beziehung abbilden. Etwa so:

Die Struktur:

   (1)        
    │                
    ├──(2)       
    │                
    ├──(3)  
    │                
    └──(4)   
         │          
         └──(5)
             │          
             ├──(6)
             │  
             └──(7)
             

Ergibt die Tabelle:

Node │ Parent │ Child
─────┼────────┼───────
  1  │ null   │ 2
  1  │ null   │ 3
  1  │ null   │ 4
  2  │ 1      │ null
  3  │ 1      │ null
  4  │ 1      │ 5
  5  │ 4      │ 6
  5  │ 4      │ 7
  6  │ 5      │ null
  7  │ 5      │ null

Gruß, Max.

Ich betreibe bei einem Zuchtverein für Rassehunde eine Datenbank, die auch ein aus 5 Tabellen bestehendes Zuchtbuch enthält. Grundsätzlich lassen sich die Eltern - Kind - Hierarchien auch in einer Tabelle darstellen. Die 5 Tabellen haben andere Gründe, da die Welpen einem Wurf zugeordnet werden, der Wurf wiederum einem Züchter, der Züchter einem Zwingernamen. Da auch im Ausland gezüchtete Hunde übernommen werden, kann ein Hund mehrere Zuchtbuch-Nrn haben. Deshalb besteht die oberste Hierachie aus der Zuchtbuch-Nr, welche auf den Hund verweist, dieser wiederum über den Wurf auf den Züchter und Zwingernamen.

Für die Hierarchie ist da kein besonderes System erforderlich. Aus der einfachen datenbanktechnisch logischen Anordnung ergeben sich die Hierarchien von selbst, da die relationale Datenbank im Kern schon hierarchische Anordnungen provoziert (kein Muss, aber oft sinnvoll und gemacht). Interessant im Zusammenhang mit dem Zuchtbuch ist nur, dass da eine Endloshierarchie besteht, die auf Sätze der eigenen Datei verweist und dies sich in einer einzigen Tabelle darstellen lässt.