Nested-Set: Ast verschieben (PHP/MySQL)
Dieter
- datenbank
Hallo,
ich komme leider auf keinen grünen Zweig mit meinen Versuchen, daher bitte ich um eure Hilfe:
Wie kann ich einen Ast innerhalb meines Baums verschieben ?
(Anmerk.: Bevor Ihr mich jetzt fragt, was ich geraucht habe :-), nein, jeder der sich mit Baumstrukturen innerhalb DBs beschäft hat, weiss schon was ich meine...)
Gruss
Dieter
Hallo,
einfach die "parent id" ändern - knappe frage, knappe antwort;-)
Grüße Basti
Hallo,
einfach die "parent id" ändern - knappe frage, knappe antwort;-)
Grüße Basti
Hallo Basti,
ok, ich hab wohl doch ein bissel zu knapp formuliert:
Mein konkretes Problem ist nicht unbedingt das verschieben eines einzelnen Astes (wobei man doch sicherlich neben der p.id auch die ltf und rgt Werte anpassen sollte, oder?) sonderen das (leider doch recht komplexe) Vorhaben Teilbereiche des Baumes (wenn ich es einmal so formulieren darf) nach links, rechts oder oben zu verschieben - nach unten geht ja logischerweise nicht da die erste Wurzel sich ja nicht unter sich selber setzten kann...
Gruss
Dieter
Hallo Dieter,
nun ja, was würde passieren, wenn du den ersten Knoten deines zu verschiebenden Astes änderst? Dann müssten die darunterliegenden Knoten sich anpassen. Die UPDATE Logik für soetwas geht natürlich etwas über die normale 3-Schritt Logik für das Einfügen eines Knotens hinaus.
Nimm dir doch mal ein kleines einfaches Beispiel auf Papier vor und versuche nachzuvollziehen, welche Schritte gemacht werden müssen und welches Muster dahinterliegt. Dann versuche es mit SQL oder PHP zu implementieren. Am besten natürlich in einer Transaktion.
Gruss, Frank
echo $begrüßung;
Am besten natürlich in einer Transaktion.
Die hat man unter MySQL nur mit InnoDB. Für MyISAM kann/muss man sich mit Sperren behelfen.
echo "$verabschiedung $name";
Ups vorschnell geantwortet,
wer lesen kann ist klar im vorteil... sorry, ganz so einfach isses bei nestet sets nun leider doch nicht
Grüße Basti