Wie kann ein Modell so strukturiert werden, dass baumartige Daten in relationalen Datenbanken richtig und effizient dargestellt werden?

dba.stackexchange https://dba.stackexchange.com/questions/62

Frage

Bezogen auf Durch das Durchqueren von baumartigen Daten in einer relationalen Datenbank mit SQL Frage, ich würde gerne wissen, wie die Art und Weise, wie regelmäßig baumartige Daten zu relationalen Datenbanken unter Berücksichtigung physikalischer Implikationen verwendet wurden.

Ich gehe davon aus, dass das RDBMS keine besonderen Funktionen für die Handhabung als normale SQL ANSI oder gemeinsame verfügbare Funktionen hat.

Im Zweifelsfall interessiere ich mich immer für MySQL und Postgresql und schließlich SQLite.

War es hilfreich?

Lösung

Ich glaube, er macht sich für etwas wie einen binären Baum. Ich würde nur drei Schlüssel einbeziehen, die an die eindeutige ID derselben Tabelle gebunden sind, eines für die linke, eines für das rechte Kind und einen für den Elternteil.

dh- (sehr viel pseudocode)

TABLE tree
int         id                  autoinc
varchar(16) data_you_care_about
int         parent_id
int         left_child_id
int         right_child_id

FOREIGN KEY parent_id = tree.id
FOREIGN KEY left_child_id = tree.id
FOREIGN KEY right_child_id = tree.id

Andere Tipps

Wenn jeder Knoten wirklich dieselbe Dateneinheit ist, würde das Paradigma immer noch eine Tabelle pro Entität und eine Verknüpfungsspalte für den Baumtraversal bedeuten, bei dem jeder Knoten nur einmal verknüpft ist.

Für Entitäten, die an mehreren Punkten im Baum verknüpft sind, würde eine separate Verknüpfungstabelle oder eine mehrfache Wertspalte verwendet.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit dba.stackexchange
scroll top