Forum: Offtopic Frage zu Datenbanken


von Gast (Gast)


Lesenswert?

Hallo,

ich würde gerne eine Baumstruktur, z.B. wie in einem Blog mit 
hierarchisch angeordneten Kategorieen, in einer Datenbank speichern.

Wie macht man das normalerweise? Baut man für jede Ebene und jede 
Unterebene eine eigene Tabelle, die dann mit dem Vater verknüpft wird?

Oder ist es üblich, dass man die Baumstruktur flach in einer Tabelle 
ablegt und über die Fremdschlüssel eines Tabelleneintrags zum 
Primärschlüssel des Vaters linkt?

Ideen sind da, aber wie macht man das üblicherweise? z.B. bei Wordpress?

Vielen Dank für Hilfe

Grüße
Gast

von Sven P. (Gast)


Lesenswert?

Guck doch einfach nach, die Quelltexte und Datenbanken von Wordpress 
sind frei.

Wenn du für jede Ebene eine eigene Tabelle baust, kriegst du ein 
Problem: Entweder, du baust von vornherein N Tabellen. Dann beschränkst 
du auch von vornherein die maximale Schachtelungstiefe.
Oder du baust und löschst die Tabellen dynamisch. Das wird dann die 
Datenbank nicht sonderlich freuen, sofern du überhaupt die nötigen 
Berechtigungen hast, um zur Laufzeit die Datenbank-*Struktur* zu 
verändern.

von Frank (Gast)


Lesenswert?

Die Datensätze liegen in einer Tabelle. Die hirarchische Struktur wird 
durch ein Datenfeld mit einem Level-Indikator (zusätzlich zur uniqen 
Beitragsnummer) verwaltet und existiert praktisch nur in der Art, die 
Daten zu darzustellen bzw. zu interpretieren ...

Frank

von Dr. G. Reed (Gast)


Lesenswert?

>Oder ist es üblich, dass man die Baumstruktur flach in einer Tabelle
>ablegt und über die Fremdschlüssel eines Tabelleneintrags zum
>Primärschlüssel des Vaters linkt?


IdR macht man das genau so.

Für Spezialanwendungen kann man aber auch mal mit Haupt / Untertabelle 
arbeiten.

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Gast wrote:
> Oder ist es üblich, dass man die Baumstruktur flach in einer Tabelle
> ablegt und über die Fremdschlüssel eines Tabelleneintrags zum
> Primärschlüssel des Vaters linkt?

Das ist die am weitesten verbreitete Methode. Eine andere, die eine 
schnellere Abfrage von kompletten Zweigen des Baums erlaubt, ist das 
Nested Set (http://www.klempert.de/nested_sets/).

von Dr. G. Reed (Gast)


Lesenswert?

Danke für den Tip, Nested Sets kannte ich bisher noch garnicht!

man lernt nie aus!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.