Mailinglisten-Archive |
On Mon, Feb 25, 2002 at 03:29:19PM +0100, Bjoern Schimpf wrote: moin, <snip> > > #1: ein knoten B ist kindknoten von A, wenn er direkter oder indirekter > > kindknoten von A ist. > > #2: ein knoten B ist direkter kindknoten von A, wenn es eine kind-relation > > zwischen A->B gibt. > > #3: ein knoten B ist indirekter kindknoten von A, wenn es einen knoten C > > gibt, sodass gilt: C ist direkter kindknoten von A, B ist kindknoten > > von C. (geht auch andersrum) > > das wird mir jetzt zu hoch... Aber im Prinzip Mengenlehre?! Bei der > Überprüfung von Knoten D musst du zu jedem bekannten Knoten #2 > testen bis du ein Ergebnis hast? ja. das macht man mit einem SELECT ... > Ich hatte noch den Ansatz gefunden, den Pfad codiert in einem Feld > abzuspeichern, dann kann man deine Abfragen mit einfachen String- > Funktionen realisieren. die variante hab ich bei meinem shopsystem verwendet. ich werde das aber ggf dahingehend abaendern, dass die pfade nach obigem verfahren automatisch erzeugt werden. (sozusagen path caching) <snip> > > > auto-increment ? ist das sowas wie bei psql sequences ? > auto-increment-felder bei mysql erhöhen ihren wert beim eintragen > neuer daten um eins... sowas loest man normalerweise mit sequenzen. ist viel sauberer und durchschaubarer. beispielsweise hast du bei sequences auch den vorteil, dass du fuer jede transaction eine current value haben kannst, sodass du konfliktfrei groessere einfuegeprozesse damit vornehmen kannst. beispiel: table person (personID, firstname, lastname), table addr_email (personID, email). es soll eine neue person mit verschiedenen daten, z.b. email-addr erfasst und die personID zurueckgeliefert werden. INSERT INTO person SELECT nextval('person_seq'), '$firstname', '$lastname' ; INSERT INTO addr_email SELECT currval('person_seq'), '$email' ; SELECT currval('person_seq'); wenn du das z.b. mit $sth = $dbh->query ( ... ), $row = $sth->fetchrow() aufrufst, hast du dann in $row[0] die personID drinstehen ... > > kennst du dich mit dem XML-krams aus ? wuerde mich mal interessieren. > > wie mans nimmt :-)) in dem cms, über das wir gerade reden speichern > wir die Daten als xml, und machen dann mit der sablot-extension von > php eine xslt transformation, momentan nach html. > > und xslt mit xpath ist gerade was Baumstrukturen betrifft > unglaublich mächtig! Du kannst die Knoten über Pfade > /knoten/child1 auswählen und über xsl-Konstrukte verwenden: > <xsl:for-each select="//level[_(at)_act=1]"> > </xsl:for-each> > level sind z.B. die Knoten vom Menü, damit baue ich eine > schleife über <level act="1"> in allen ebenen! hmm... gibts dazu irgentwo ne gute howto ? ~-n -- Enrico Weigelt == meTUX IT services software development, IT service, internet security solutions www: http://www.metux.de/ phone: +49 36207 519931 email: contact_(at)_metux.de cellphone: +49 174 7066481
php::bar PHP Wiki - Listenarchive