Mailinglisten-Archive |
Hi Lars,
LB schrieb:
> Das heisst, du würdest als Schlüssel links|rechts verwenden und id als not
> null feld, das aber nicht unique ist?
>
> (bin gerade dabei meine mysql-nestetset-baum klasse neu aufzubauen, die
> war so schlampig von den sql abfragen her.
allmählich beginne ich Deine Ausgangsfrage zu verstehen... ;-) Man merkt,
daß ich noch nicht praktisch mit Nested Sets gearbeitet habe. :-D
Hintergrund Deiner Frage scheint zu sein, daß sowohl die Knoten-ID als
auch das Zahlenpaar links/rechts nur einmal vorkommen darf, sich das aber
nicht zuverlässig mit einem Primärschlüssel abdecken läßt, oder?
Wir müssen sogar noch weiter gehen. Nicht nur die Links/Rechts-Kombination
muß eindeutig sein, sondern auch jeder Links- und Rechts-Wert für sich.
D.h. Knoten-ID, Links-Wert und Rechts-Wert müssen jeweils eindeutig sein.
Das könnte man datenbankseitig z.B. so lösen:
Knoten-ID -> Primary Key
Links-Wert -> Unique Index
Rechts-Wert -> Unique Index
So - und nun kommt dann noch die ID hinein, die ich bisher immer mit
Element-ID bezeichnet hatte. Deren Werte dürfen dann mehrfach in der
Tabelle vorkommen. Die Element-ID holt dann aus der Elemente-Tabelle eine
Beschreibung für den Knoten. Diese separate Elemente-Tabelle macht z.B.
für mehrsprachige Inhalte Sinn oder für die Mehrfachverwendung von
Beschreibungen.
Ich hoffe, jetzt habe ich das endlich richtig zusammengekriegt. ;-)
Viele Grüße
Lutz
php::bar PHP Wiki - Listenarchive