Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Treestruktur in einer Datenbank - Tabelle speichern (https://www.delphipraxis.net/107088-treestruktur-einer-datenbank-tabelle-speichern.html)

TheProfi 22. Jan 2008 10:08

Datenbank: MS SQL • Version: 8.00.760 (SP3) • Zugriff über: ADO

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? :gruebel:

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

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

Ich hab momentan eine Denkblockade. :wall:

Delphi-Quellcode:
//-----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;

Codewalker 22. Jan 2008 10:53

Re: Treestruktur in einer Datenbank - Tabelle speichern
 
Evtl. hilft dir diese Diskussion weiter http://www.delphipraxis.net/internal...t.php?t=126864

Brainshock 22. Jan 2008 10:59

Re: Treestruktur in einer Datenbank - Tabelle speichern
 
Wenn es darum geht die Sachen schnell auszulesen, würde ich mich mal mit "Nested Sets" beschäftigen:

Wikipedia: Nested Sets

Gruß

TheProfi 22. Jan 2008 11:24

Re: Treestruktur in einer Datenbank - Tabelle speichern
 
@Brainshock

Vielen Dank. Nested Sets sind genau richtig. Ich werd mich mal mit dem Artikel auseinandersetzen.

Zur Verdeutlichung meines Threads hier noch eine kleine Ergänzung:

Grafisch dargestellt werden soll:

Land -> Ort -> Gebäude -> Serverraum 1 -> dann sollen als Subknoten weitere Räume oder Server etc folgen
Land -> Ort -> Gbeäude -> Serverraum 2 -> usw...

In einem grafischen Editor sollen natürlich die einzelenen Knoten umgehängt, erstellt oder gelöscht werden. Die Änderungen sollen natürlich gleich wieder in der DB Tbl aktualisiert werden. Die Darstellung ähnelt der Darstellung von Whatsup Gold.

Ich werd mal ein bisschen Code posten, wenn ich weitergekommen bin.

Für Ideen weiterhin dankbar.


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:27 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz