Mailinglisten-Archive |
Hallo René, ich habe den Thread gerade erst gelesen und möchte Dir noch einen kleinen Hinweis mit auf den Weg geben. Die Generierung des Typ 1 hat bei mir total lange gedauert. Wahrscheinlich hast Du die Funktion rekursiv aufgerufen, was bei einzelnen Zugriffen ja noch funtktioniert. Aber wenn dann mehrere Personen sehr oft auf den Server zugreifen, dann gibt's da durchaus mal Probleme mit der Performance (was sich ja schon angedeutet hat). Vielleicht sollte man folgende Dinge überlegen: 1. ist es machbar, die Abfragen rekursiv auszuführen? 2. muß immer der gesamte Baum geladen werden oder reicht es, einen Knoten weiter zu verfolgen? Ich habe dazu folgende mögliche Antworten: zu 1. Ja, jedenfalls begrenzt. zu 2. Nein, Baum nur an den jeweiligen Knoten öffnen und nicht immer alles laden. Mittels dieser Überlegungen begrenzt Du die Anzahl der SQL-Queries auf maximal die Ebenentiefe. Ich denke, da man nicht soooo oft über Ebenentiefe 5 kommt, sollte der Server das auch bei vielen Zugriffen verpacken. Andererseits verfolgt der Nutzer immer nur den Weg in die Ebenentiefe abwärts, den er mittels der jeweiligen (+) Knoten geöffnet hat. Andere Ebenentiefen woanders interessieren ihn nicht. Meines Erachtens kannst Du Deinen Baum also durch zwei Koordinaten erstellen: Den Pfad und den Layer. Beispiel: path layer ----------------------------|---------- Personen 0 Personen/Meier 1 Personen/Müller 1 Personen/Müller/Schuhgröße 2 Personen/Müller/Augenfarbe 3 Die Ebenentiefe ergibt sich bildlich aus der Anzehl der / Slashes. Die jeweils nächst tiefere Ebene erreichst Du in der Query also immer durch den jeweils aktuellen Pfad selbst in Verbindung mit dessen count der split-Funktion. Angenommen, Du wolltest die Ebene unterhalb von Person/Müller haben, dann wäre die Query: $q = "SELECT * FROM tabelle WHERE path like '" . $path . "%' AND layer = " . count(split("/", $path)); Und wenn man jetzt immer nur den jeweiligen Weg nach unten in der Ebene verfolgt, der gerade via (+) geöffnet wird, dann schnurrt das ganze... und zwar schnell wie Schmidt's Katze... Ich hoffe, ich konnte was beitragen. Grüße Tim
php::bar PHP Wiki - Listenarchive