Guten Spätnachmittag,
ich habe eine Frage zur Abbildung von einer Artikel-Struktur in einer DB-Tabelle (falls es relevant ist: MySql).
Die Struktur erfordert eine eindeutige Reihenfolge für jede Ebene.
Es gibt n-Ebenen.
Jeder Artikel hat einen Namen und die Ebene ist bekannt, Namen können mehrmals auftauchen (ein Artikel über Klima kann unter verschiedenen Länderkategorien vorhanden sein).
Das ganze soll möglichst effizient sein.
Auch zu beachten folgende Anforderung:
Zum Aufbau der Menüführung müssen leicht alle Ebenen geöffnet bis zum Aktuellen Artikel und dessen direkte Unterkategorie "ausgeklappt" ermittelbar sein.
Bisjetzt habe ich folgende 3 Möglichkeiten, mit ihren Vor- und Nachteilen:
- NestedSets: schneller lesender Zugriff, eindeutige Reihenfolge, komplizierter manipulierender Zugriff
Wie die erforderten Einträge zur menüführung einfach herausfinden?
Über Ebene und Name des Aktuellen "Pfades" und den Weg dorthin z.B. Kontinent -> Land -> Wetter kann ich nicht wirklich schön überprüfen, ob der Pfad existiert. - Pfad speichern z.B. 1.3.4.5.2: Reihenfolge nur schwerlich festzulegen, da komplette Tabelle geändert werden müsste, begrenzte Möglichkeiten.
Für Abfrage der Menüführung recht komfortabel.
Pfad kann auch recht einfach überprüft werden.
Geschwindigkeitsproblem? - id/parent-id: rekursive mehrfache Abfragen notwendig, zusätzliche Spalte für Reihenfolge
Abfragen relativ simpel.
Pfad kann relativ unkompliziert validiert werden.
Also spricht wohl alles für Pfad oder id/parent-id. Doch für große Strukturen kommen diese wohl nicht in Frage. Kann mir jemand für meine Entscheidung Erfahrungen, Tips, Meinungen geben? Oder kann gar für meine Probleme mit NestedSets mir weiterhelfen, da mir NestedSets für sowas eigentlich immer im Kopf vorschwebten.
Ich bin gespannt auf Meinungen oder andere/neue Konzepte, mir fällt die Entscheidung schwer, da ich für meinen Einsatz teilweise Umsetzungsprobleme sehe.
Grüße
pc