php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Nested-Sets ähnliches Modell mit TXT-Datei realisieren


 
zzet
15-08-2003, 22:05 
 
Hat einer von Euch eine Idee, wie man das Nested-Sets-Modell (Modell zur Darstellung von Baumstrukturen) auf eine TXT-Datei übertragen könnte?

Das Problem ist, dass ich eine Anwendung geschrieben habe, die hierarchische Strukturen (Bäume) mit beliebiger Tiefe abbilden soll.

Bsp: (aktives Element wäre Auto->Audi->A4->Felgen->Alu)

-Auto
-- Audi
--- A2
--- A3
--- A4
---- Felgen
----- Alu
-- BMW
-- Mercedes
-- Porsche
-Bekleidung
-Tabak
-Nahrungsmittel

Bisher habe ich das Skript mit einer DB verwendet und für die Baumstruktur auf das Nested-Sets-Modell zurückgegriffen. Optional soll das Skript aber jetzt auch OHNE DB laufen. In dem Fall werden die Daten dann in einer TXT-Datei gespeichert, was auch kein Performance-Problem ist, da es sowieso nur eine begrenzte Anzahl an Daten sind (max. 50 Zeilen in der Datei).

Ich habe es schon geschafft, das ganze bis zu einer Tiefe von max. 3 Ebenen (also z.B. Auto->Audi->A4) auf eine TXT-Datei umzuschreiben. Aber ich habe keine Idee, wie ich es realisieren soll, dass beliebig tiefe Ebenen dargestellt werden können.

Ich bin für jeden Denkansatz dankbar. Eigentlich bin ich der Meinung, dass es überhaupt nicht möglich ist, das mit PHP und einer Textdatei zu realisieren - lasse mich aber sehr gerne vom Gegenteil überzeugen! ;)

 
TobiaZ
15-08-2003, 22:11 
 
ich denke mal, genauso rekursiv, wie es in sql gemacht werden müsste.

:dontknow:

 
zzet
15-08-2003, 22:15 
 
Ja schon - nur denke ich nicht, dass das bei ner TXT möglich ist, oder?
Schließlich ist eine DB ein relationales Modell, wovon ich ja bei einer TXT nicht gerade sprechen kann.

 
TobiaZ
15-08-2003, 22:16 
 
naja, könntest du auch machen:

1|2|home
2|0|website

...

aber was hast du denn bis jetzt für nen code.

 
zzet
15-08-2003, 22:28 
 
Habe mir auch schon überlegt, es mit dem Parent-ID Ansatz zu versuchen, also so:

ID | Parent-ID | TEXT

1 | 0 | Auto
2 | 1 | Audi
3 | 2 | A2
4 | 2 | A3
5 | 2 | A4
6 | 5 | Felgen

usw..

Funktioniert auch ganz ok. Nur, wenn ich jetzt als aktiven Punkt "Felgen" habe, dann schaffe ich es zwar über die Parent-ID (5) den Mutterknoten (ID 5 = A4) zu finden - aber dann wiederum den Mutterknoten von A4 (=Audi) und zusätzlich den Mutterknoten von Audi (=Auto) darzustellen [und zwar so, dass diese Knoten als aktiv, die Schwesterknoten (bsp. A2, A3...) als inaktiv dargestellt werden] das gelingt mir noch nicht so ganz.

Den Code, den ich bisher für solche Aufgaben verwendet habe, kann ich dafür definitiv nicht verwenden, da er auf eine Tiefe von 3 Ebenen beschränkt ist.

Bsp:
1.0.0 = Auto
1.1.0 = Audi
1.1.1 = A2
1.1.2 = A3
1.1.3 = A4
usw..

Natürlich könnte ich das auf 4, 5 usw. Ebenen erweitern, indem ich z.B. 1.0.0.0.0 schreibe. Aber ich will es auch auf beliebige Tiefe erweitern können, ohne dass ich einem Punkt die ID 1.0.0.0.0.0.0.0.0....0 zuweise.

Verstehst Du, was ich meine?

 
zzet
16-08-2003, 17:22 
 
hm, schade..
ich nehme mal an, dass keiner mehr ne andere Idee hat?!

dachte mir schon, dass es mit txt-Dateien nicht gehen wird. :(


Alle Zeitangaben in WEZ +2. Es ist jetzt 06:45 Uhr.