Hallo Leute!
Mich würde mal eins interessieren und das brennend,da man darüber immer wieder auseinandergehende Aussagen auffindet!
Wann würdet ihr für das erstellen eines Kategoriebaums das Nested Sets Modell anwenden und wann das der Rekursion?
Ich habe gelesen auf meinen Kreuzzügen durch das www das Nested Sets nur dann Sinn machen wenn eine Tiefe der baumstrucktur wenig bis gar nicht vorgenommen wird,weil ja dort jedes child zwei bezugspunkte hat soll das sehr kompliziert und sehr aufwendig in der Sql programmierung sein und nicht wirklich effektiv sein!
Wenn eine feste Struktur bestehen bleibt dann ist das Nested Sets Modell wieder sehr empfehlenswert weil es die DB performance sehr schonend behandelt und man nur eine Sql Abfrage braucht in der alles geregelt ist!
Bei einer Rekursion wiederum ruft sich ja immer wieder eine Funktion von selbst auf bis es zu einer Abruchbedingung kommt. Das heist aber auch bei einer tiefen Baumstrucktur wenn dann noch viele darauf zugreifen soll es wohl passieren können das die performance schlapp macht und die DB zusammenbricht!
Eure Meinungen und Hilfreichen Beiträge würden mich interessieren und freuen!
mfg der Litter
Ankündigung
Einklappen
Keine Ankündigung bisher.
Nested Sets oder Rekursion?
Einklappen
Neue Werbung 2019
Einklappen
X
-
Nested Sets oder Rekursion?
Stichworte: -
-
Danke recht schön ich werde mir das auf alle Fälle mal anschauen.
Ich habe ja auch schon über Nested Sets gelesen und Beispiel Code aber das war irgendwie sehr kompliziert zu verstehen!
-
Mit Backend ist hier vermutlich eine Abstraktion der SQL-Operationen gemeint, die du benoetigst um Knoten zu verschieben, anzuhaengen oder zu entfernen.
Fall du dich für ein Beispiel interessierst, habe ich hier was für dich: http://adventure-php-framework.org/f...umstruktur.zip das ist eine Umsetzung der Rekursionsmethode. Der Cod eist zwar schon steinalt, aber er zeigt, wie das prinzipiell funktioniert. Caching und Optimierungen kann man dann immer noch drüberlegen.
Einen Kommentar schreiben:
-
Wenn du wirklich _alle_ Unterpunkte brauchst kannst du ja selbst ausrechnen, wie aufwendig das mit rekursiven SQL-Abfragen ist. Pro Knoten eine Abfrage.
Natuerlich kannst du das mit PHP optimieren. Es kann sich lohnen einfach alle Eintraege auszulesen und das ganze dort zusammenzubauen.
Nested Set ist halt von Vorteil, wenn du alle Untermenuepunkte unabhaengig von Tiefe oder Anzahl der Knoten haben willst, weil du einfach nur Links/Rechts angeben musst - alles was dazwischen liegt ist ein Untermenue.
Mit Backend ist hier vermutlich eine Abstraktion der SQL-Operationen gemeint, die du benoetigst um Knoten zu verschieben, anzuhaengen oder zu entfernen.
Einen Kommentar schreiben:
-
Nunja,gehen wir mal davon aus wir haben eine Shopnavi. Wenn ich da auf einen Kategorielink klicke öffnet er die dazugehörigen Unterkategorien und das eben immer wieder ja nach dem wie tief fie Baumstrucktur ist!
Demzufolge beschränke ich mich ja nur auf das was ich brauche oder habe ich das falsch verstanden?
Bitte entschuldigt die aber was ist mit dem Begriff Backend gemeint?
mfg der Litter
Einen Kommentar schreiben:
-
Rekursion, grade bei SQL ist halt so einer der wenigen richtig ueblen Performance-Killer. Entweder man beschraenkt sich wirklich auf einen sichtbaren Ausschnitt, wie dr.e. schon sagte, oder man nimmt fuer die groesseren Baeume wirklich Nested Set.
Einen Kommentar schreiben:
-
Hallo,
Wann würde es denn wenn eine Rekursion benutzt wird die Performance so arg ins leiden kommen das die DB zusammenbricht?
Nested Sets sehe ich genau wie nikosch nur dann, wenn du auch ein Backend hast, denn ohne ist das nicht wirklich sinnvoll zu handeln.
Einen Kommentar schreiben:
-
Ich will halt verschiedene Meinungen und darüber diskutieren!
Ich bin der Meinung hat man zum Beispiel ein Shopscript da legt man sich ein haufen kategorien an,lässt man die bestehen ohne Anderungen und Verschiebungen machen zu wollen wäre nested Sets das richtige Modell halt wegen der performance. Macht man aber viele Verschiebungen und Änderungen wäre das eben nicht mehr so einfach zu realisieren und da würde wieder eine Rekurion sehr viel besser geeignet sein!
Wann würde es denn wenn eine Rekursion benutzt wird die Performance so arg ins leiden kommen das die DB zusammenbricht?
Einen Kommentar schreiben:
-
Mich würde mal eins interessieren und das brennend,da man darüber immer wieder auseinandergehende Aussagen auffindet!
Da erschließt sich das Konzept mit parent ID's besser, allerdings ist das für häufige
Änderungen der Menüstruktur nicht so geeignet.
Einen Kommentar schreiben:
Einen Kommentar schreiben: