Mal eine Frage an die echten mySQL-Cracks hier.
In einer Tabelle, die eine Baumstruktur abbildet, abgekürzt so:
id / parent / name
Muß ich beim Laden des aktuellen Objekts (z.B. id = 100) immer den Stammbaum mitladen, um aus diesem Informationen zu ziehen, die nicht im aktuellen Objekt gesetzt sind (z.B. Rechte-Bits) und implizit vom nächsten Ahnen oder Urahnen geerbt werden.
Dieses Laden findet im Moment in PHP statt (also lade aktuelles Element, finde Parent raus, lade diesen, finde dessen Parent raus usw, bis das Element mit der ID "ROOT" erreicht wurde).
Aus Performancegründen (und Neugier) meine Frage: Läßt sich dieser Vorgang irgendwie in ein mySQL-Statement packen? Und der Stammbaum dann aus dem Resultset auslesen? Auch nach längerem Überlegen wüßte ich nicht, wie.
In einer Tabelle, die eine Baumstruktur abbildet, abgekürzt so:
id / parent / name
Muß ich beim Laden des aktuellen Objekts (z.B. id = 100) immer den Stammbaum mitladen, um aus diesem Informationen zu ziehen, die nicht im aktuellen Objekt gesetzt sind (z.B. Rechte-Bits) und implizit vom nächsten Ahnen oder Urahnen geerbt werden.
Dieses Laden findet im Moment in PHP statt (also lade aktuelles Element, finde Parent raus, lade diesen, finde dessen Parent raus usw, bis das Element mit der ID "ROOT" erreicht wurde).
Aus Performancegründen (und Neugier) meine Frage: Läßt sich dieser Vorgang irgendwie in ein mySQL-Statement packen? Und der Stammbaum dann aus dem Resultset auslesen? Auch nach längerem Überlegen wüßte ich nicht, wie.

Es ist nur so, daß in dem Baum relativ viel rumgefuhrwerkt wird (Also neue Zweige angelegt, bewegt, umsortiert). Soweit ich das Modell verstanden hab, ist es für so ein Szenario nicht die beste Lösung, weil jeweils der gesamte Baum aktualisiert werden muß.
Kommentar