Nested Sets parent_id Modell

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • TBT
    antwortet
    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

    Einen Kommentar schreiben:


  • Payne_of_Death
    antwortet
    *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:


  • Wurzel
    antwortet
    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:


  • Payne_of_Death
    hat ein Thema erstellt Nested Sets parent_id Modell.

    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 |
    +---------+----------------+-----------+-----------+-------+------+
    (menus_has_menus)
    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 |
    +---------+----------+
    Das Problem ergibt sich wenn man von Verwaltung -> Memberverw. -> Add Member || Edit Member geht. Ich sehe kein Merkmal mit welchem ich zum gewünschten Ergebnis kommen kann leider
Lädt...
X