Nicht nur die 0 fehlt in menu_has_menu, sondern noch viele andere!
In der menu_has_menu müssen für jede ID alle übergordneten ID's beginnend bei 0 abgelegt werden. Wenn du als so ein Menu hast
ID Menupunkt
1 1.
2 1.1
3 1.1.1
mußt du in die menu_has_menu folgendes eintragen
parent child
0 1 - 1. Menupunkt
0 2 - 2. Menupunkt
1 2
0 3 - 3. Menupunkt
1 3
2 3
Noch perfomanter funktioniert es, wenn die SQL Konstruktionen darauf hin umgestellt werden, dass kein "or" mehr verwendet wird. Dann benutzt MySQL auch die Indizes korrekt.
Um dies zu erreichen, sind dann noch die mit sich selbst verbundenen Einträge in der menu_has_menu zu tätigen.
1 1
2 2
3 3
Nested Sets parent_id Modell
Einklappen
X
-
*juhu* bin nicht der einzige mit dem Problem
Wenn ich das jetzt richtig verstehe brauche ich je Menüpunkt grundsätzlich immer einen Datensatz mit child 0, je nachdem ob er noch einen Vater hat folgt ein weiterer Datensatz....
Muss ich nachher gleich mal testen
Einen Kommentar schreiben:
-
die einträge in "menus_has_menus" sind unvollständig. jeder eintrag kann ein parent sein, daher muss jede id auch mit child_id 0 vorhanden sein.
schau dir den thread von tbt bzw. happy nochmal an, ich hatte ein vollständiges beispiel gepostet (hatte vorher dasselbe problem )
Einen Kommentar schreiben:
-
Nested Sets parent_id Modell
Hey,
habe mich an ein Nested Modell gewagt inspiriert durch TBTs menu_menu.
angestrebte Situation:
Ich wollte hiermit eine Treenavigation erstellen bei welcher ich mich durch die verschiedenen Bäume durchklicken kann, so dass der jeweilige aktive Baum stets geöffnet bleibt.
Problemmatik:
Dies hat bis zur zweiten Ebene problemlos funktioniert, jedoch bei der dritten Ebene gab mir mein offensichtlich falsches SQL Statment nur noch die erste Ebene und die dritte Ebene zurück, so dass meine rekursive Funktion die Navigation nur noch bis zur ersten Ebene vollziehen konnte.
Meine Überlegungen endeten in einer Sackgasse, dass mein vorhaben mit diesem Modell überhaupt möglich ist.....
Eine Aufklärung disbezüglich würde mir schon denke ich Klarheit verschaffen.......
Meine Tables Dumps: (menus)
Code:+---------+----------------+-----------+-----------+-------+------+ | menu_id | menu_name | mod | parent_id | level | sort | +---------+----------------+-----------+-----------+-------+------+ | 1 | Verwaltung | | 0 | 1 | 1 | | 2 | Sessionverw. | | 1 | 2 | 2 | | 3 | Memberverw. | member | 1 | 2 | 1 | | 5 | Module | | 0 | 1 | 2 | | 6 | GB | | 5 | 2 | 2 | | 7 | News | | 5 | 2 | 1 | | 8 | Download | | 5 | 2 | 3 | | 9 | Irgendwas | | 5 | 2 | 4 | | 10 | Navigation | | 0 | 1 | 3 | | 23 | Kategorieverw. | categorie | 1 | 2 | 3 | | 25 | Add Member | | 3 | 3 | 1 | | 26 | Edit Member | | 3 | 3 | 2 | +---------+----------------+-----------+-----------+-------+------+
Code:+---------+----------+ | menu_id | child_id | +---------+----------+ | 1 | 0 | | 5 | 0 | | 10 | 0 | | 2 | 1 | | 3 | 1 | | 23 | 1 | | 25 | 3 | | 26 | 3 | | 6 | 5 | | 7 | 5 | | 8 | 5 | | 9 | 5 | +---------+----------+
Stichworte: -
Einen Kommentar schreiben: