phpbar.de logo

Mailinglisten-Archive

[php] =?iso-8859-1?Q?_Re:_=5Bphp=5D_OT=3F:_Designr=E4tsel?=

[php] Re: [php] OT?: Designrätsel

Juri.Smarschevski php_(at)_phpcenter.de
Wed, 21 Mar 2001 14:23:36 +0100


> -----Original Message-----
> From: php-admin_(at)_phpcenter.de [mailto:php-admin_(at)_phpcenter.de]On Behalf Of
> Arash Yalpani
> Sent: Wednesday, March 21, 2001 1:24 PM
> To: 'php_(at)_phpcenter.de'
> Subject: [php] AW: [php] AW: [php] Re: [php] OT?: Designrätsel
>
>
> > Wie und wo speicherst Du das Array? Wieviele Eintraege wuerde dies
> > aushalten? Und wenn ich das richtig sehe, benoetigst Du zum
> > Holen von Teilbaeumen trotzdem fuer jeden Knoten eine SQL-Anweisung,
> > oder?
>
> mal ne ganz blöde Frage: gibt es irgendeine Bibliothek oder so um mit
> einer SQL-ähnlichen Syntax mit assoziativen Arrays zu arbeiten? Ich
> denke an so etwas wie:
> ...
> Das würde die Möglichkeit bieten, eben nicht an jedem Knoten eine
> DB-Query absetzen zu müssen. Stattdessen liest man EINmal am Anfang
> die Daten aus der DB in das Array ein und könnte dann mittels der
> von mir gesuchten Bibliothek den Baum rekursiv und OHNE weitere
> DB-Zugriffe zusammenbasteln.
>
> Weiss irgendwer von solch einer Möglichkeit - wenn nein: klingt das
> sinnvoll? Ist das machbar?

Ich habe die Klasse, die dieses Verfahren realisiert, etwa vor einem Jahr
geschrieben. Aus dieser Erfahrung aus wuerde ich behaupten - es ist
nicht sinnvoll. Der Grund ist ganz einfach - man muss ALLE Seiten mit
einer Query auslesen, und mit rekursiven Funktionen bearbeiten, bis ein
Array mit passender Strukture erstellt wird. Hat man 500 Seiten, dauert's
halt dementsprechend, obwohl meinetwegen nur 10 Menu-Points angezeigt werden
sollen. Schlecht.
Die ideale Vorgehensweise - nur das auslesen, was tatsaechlich angezeigt
wird. Und mit einem Query, maximal zwei. Deswegen ist IMHO
 http://www.koehntopp.de/kris/artikel/sql-self-references/ schon der
richtige
Einsatz ( evtl. ein paar zusaetzliche Fields fuer eigene Zwecke). Hat auch
einige Nachteile gegenueber Vater<->Sohn Verfahren. Aber, diese Nachteile
sind nur im Bereich Nodes move und insert zu sehen. Wie oft passieren
diese Ereignisse im Vergleich mit dem Auslesen von Tree ?
Ich wuerde an dieser Stelle versuchen eine Mischung zwieschen "Nested
Modell"
und "Vater-Sohn" zu realisiern.

Gruss,
Juri



php::bar PHP Wiki   -   Listenarchive