Hierarchie einer Entität in einer relationalen Datenbank

Krs81

Neuer Benutzer
Beiträge
2
Hallo zusammen,

ich habe in meinem Datenbankmodell eine Entität, für die ich eine Hierarchie abbilden will.

Es handelt sich dabei um Konten. Ein Konto 1A hat mehrere Unterkonten 2A, 2B, 2C und 2D. Das Konto 2A hat wiederum mehrere Unterkonten 3A, 3B und 3C. Gleiches gilt für 2B, 2C und 2D, die alle mehrere eigene Unterkonten haben. Das Ganze soll auch auf der nächsten und allen folgenden Ebenen möglich sein - also auch 3A soll Unterkonten 4A, 4B usw. haben können.

Weitere Hintergrundinformation: In Auswertungen möchte ich die Kontostände auf einzelnen Knoten und Blättern, die ich explizit auswählen und auch über die Ebenen mischen können muss, ausweisen, wobei Kontostände jeweils auf Oberkonten zu saldieren sind.

Wie gestalte ich idealer Weise meine Datenbanktabelle für die Entität "Konten", um die beschriebene mehrstufige Hierarchie sauber abzubilden?

Danke für Eure Lösungsvorschläge und Hinweise!

Viele Grüße
Krs81
 
Werbung:

Tommi

Datenbank-Guru
Beiträge
289
Hi,

eine Hierarchie abzubilden ist relativ einfach. Du benötigst neben einer ID-Spalte (PKEY) eine weitere Spalte "Parent_ID".
In dieser verweist du dann einfach auf die übergeordneten ID in der selben Tabelle.

Eine Abfrage dieser Hierarchie muss auf die Tabelle dann rekursiv vorgenommen werden.
(Beim SQL Server geht das z.B. mit der WITH-Methode).

Viele Grüße,
Tommi
 

Krs81

Neuer Benutzer
Beiträge
2
Hallo Tommi,

vielen Dank für Deine Antwort.

Wie sieht es bei dem Wurzeldatensatz aus? Trage ich dort den eigenen Schlüssel in "Parent_ID" ein oder lasse ich das leer?

Viele Grüße
Krs81
 

Schrotty

Neuer Benutzer
Beiträge
1
Hi,

die Rootdatensätze würde ich leer lassen, denn sonst hast Du wahrscheinlich wegen der Rekursion eine Schleife.
Oder Du musst diese mit einer WHERE-Klausel herausfiltern bevor Du die Rekursion anwendest.

Grüße
Schrotty

PS: In Oracle habe ich so eine Rekursion mal mit "Connect by Prior" gemacht.
 
Werbung:
Oben