patrick c: Artikel-Struktur in DB: Pro, Contra, Umsetzung

Beitrag lesen

Abend,

danke für die Antwort.

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).

Du willst also von mehreren Stellen auf dasselbe Objekt verweisen?

  • von unterschiedlichen Ebenen und Zweigen
  • gleiche Ebene aber verschiedene Zweige

Nein nicht dasselbe Objekt, aber ein Artikel, der womöglich den gleichen Namen wie ein anderes Objekt in einem beliebigen anderen Zweig und einer beliebig anderen Ebene hat.

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.

Eine Datenbank kennt kein "ausklappen". Das ist Frontend-Logik (Bereich View vom MVC).

Ich meinte hiermit, dass ich auch nur diesen Teil des "ausgeklappten" Baumes gerne möglichst einfach aus der Tabellenstruktur aubfragen können möchte, ohne den kompletten Baum abfragen zu müssen. (z.B. bei NestedSets wüsste ich nicht, wie das möglich ist.

  • NestedSets: schneller lesender Zugriff, eindeutige Reihenfolge, komplizierter manipulierender Zugriff

Ja, wäge doch mal ab, was öfter vorkommt. Wieviel manipulierende Operationen hast du? Was vielleicht ein Schwachpunkt ist, es muss immer den gesamten Baum updaten. Bei 100'000 Datensätzen könnte das dann schon was ausmachen. Von wieviel Datensätzen reden wir?

Wir reden zwischen 3 und 4 stelliger Anzahl an Datensätzen.
Abgewägt ist schon: lesender Zugriff ist wesentlich häufiger und paar tausend Datensätze wird man schon aktualisieren können.
Jedoch scheinen mir die Abfragen für meine Anforderungen recht umständlich. Oben erwähnte Menustruktur wüsste ich nicht, wie ich Abfragen soll.

  • Pfad speichern z.B. 1.3.4.5.2: Reihenfolge nur schwerlich festzulegen

Was machst du bei 1.3.4.5.3.2.5? Ist die 3 an 2. Stelle dieselbe 3 wie an 5. Stelle?

Es sind nicht dieselben.
Hierbei würde jeweils die n-te mit Punkt abgetrennte Zahl das Zahlte Element in der n-ten Ebene darstellen.

Abfragen relativ simpel.

Woher stammt deine Ansicht? Was für Abfragen? Was ist mit "Gib alles was auf Ebene 5 ist"? ... Ebene 5 ist eine Element was auf ein Elternelement, welches auf ein Elternelement, welches auf ein Elternelement, welches auf ein Elternelement ohne Elternelement verweist. Wie willst du das in einer einzigen Abfrage machen?

Garnicht. Ist aber in meinen täglichen Anforderungen auch nicht enthalten. ben genannte Menüstruktur wäre hier aber komfortabel Abzufragen.

Bin immer dankbar für neue Ideen, gerade im Bereich NestedSets, was mich einerseits überzeugt, scheitere ich einfach an so "täglichen" Aufgaben, wie den Pfad zu validieren oder oben erwähnten Teilbaum abzufragen.

Gruß
pc