Announcement

Collapse
No announcement yet.

Treestruktur in einer Datenbank - Tabelle speichern

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Treestruktur in einer Datenbank - Tabelle speichern

    Hi zusammen,

    ich programmiere gerade ein Software in der ich grafisch Informationen in Form eines "Tree´s". Sprich ich habe Beispielsweise einen Ort und wenn ich auf den Ort klicke werden mir weitere Geschäfte o.ä. angezeigt und so weiter (Drillthrough). Dies baut man normaler weise als Tree auf (Pointerstruktur).
    Ich möchte gerne diese Struktur in einer Tabelle(n) speichern. Hat jemand ein Idee?

    Eintrag
    / \
    Eintrag Eintrag ... Eintrag
    / \ / \ /

    Zu einem Eintrag kann es mehr als 2 "Sub"-Einträge geben.

    Ich hab momentan eine Denkblockade.

    Type
    //-----Link Node-----
    link=^node;
    node=record
    recno : integer;
    recno_neu : integer;
    ...
    typ : Integer; //Org.-Einheit=0; Infrastrukturobject=1
    eintraege : array of link;
    end;

    var
    MO : link;
    MOData : node;

  • #2
    Hi,

    mit einer Tabelle geht es ohne weiteres nicht. Da müsstest Du eine Geschäfte-Tabelle über einen Foreign Key mit der übergeordneten Ort-Tabelle verlinken.
    Falls es Geschäfte gibt, die in mehreren Orten vorkommen können, hilft auch eine Verweis-Tabelle, in der nur die IDs Ort/Geschäft stehen.
    Also praktisch eine Tabelle pro Baum-Ebene.

    Grüße

    Julia

    Comment


    • #3
      Hallo,

      du kannst auch in einer Tabelle dir die Struktur speichern. In der du eine Eindeutige ID für jeden Eintrag hast und dir den übergeordneten Baumeintrag speicherst.

      Zum Beispiel so:
      Code:
      Id     Parent
      
      root  nil ...
      1      root ...
      2      root ...
      3      1 
      4      1
      5      2 
      6      2 
      ...

      Comment

      Working...
      X