Menü Website umbau von Pfadmodell auf Binären Baum
am 20.06.2006 13:36:38 von TobiasHallo zusammen,
habe folgendes Problem.
Auf meiner Website habe ich ein Menü das über Datenbank folgende
Struktur enthält:
Tabelle: menupunkte
Felder:
`id` int(11) unsigned NOT NULL auto_increment,
`parent_id` int(11) default '0',
`pfad` varchar(255) default NULL,
`name` varchar(255) default NULL
Nun ist das Menü derzeit so aufgebaut das die parent_id immer die ID des
Vaterknotens enthält. Im Pfad Feld steht der gesamte Pfad bis zum
Kindknoten drin. Beispiel: 1:4:5:2
Heisst Root ist ID=1 und es gibt 3 Kindknoten.
Aus technischen Gründen möchte ich nun die bestehende Menüstruktur
anpassen von Pfad-Modell auf Nested-Set Modell.
Hierzu habe ich nun die Datenbankstruktur angepasst und 2 Felder zur
Struktur hinzugefügt:
`lft` int(11) unsigned NOT NULL default '0',
`rgt` int(11) unsigned NOT NULL default '0',
Das Nested-Set Modell ist mit den Parents ja anders aufgebaut:
bei allen Unterpunkten / Kindknoten wird immer die ID des Roots in das
parent_id Feld eingetragen. Soweit auch kein Problem das habe ich über
eine SQL Anweisung über den PFad regeln können und die Parent_id
aktualisiert.
Das Problem ist nun lft und rgt Werte des Nested-Sets Modell in der
bestehenden Struktur zu aktualisieren.
Ich bin soweit das ich die Gesamte Menüstruktur in einen Array in PHP
eingelesen habe.
Wie kann ich nun diese lft und rgt Felder für die Gesamte Struktur
berechnen.
Vielen Dank im Voraus,
Tobias