Tom: Datenbank strukturierung...

Beitrag lesen

Hallo Roman

Bevorzuge meinen Vorschlag, da wie gefordert die DB nach allen seiten offen ist, denn bei deiner ist keine m:n beziehung zw. Kategorie und Link vorhanden. Aber das muß Anonymous entscheiden, ob er meinen Vorschlag braucht.

Mein Vorschlag war einfach und geradeaus gedacht.
Natürlich ist es flexibler alle Kategorien (also Hauptkategorien, Unterkategorien, Zwischenkategorien, Zwischenunterkategorien... ;-) ) in einer Tabelle abzulegen und mit einem Zeiger auf sich selber hierarchisch zu strukturieren. Das Ganze muss aber in der Bearbeitung etwas aufwendiger angepackt werden. Mein Vorschlag ist zwar einfacher, dafür aber völlig unflexibel bezüglich der Anzahl Hierarchestufen in den Kategorien.
Da soll wirklich Anonymous entscheiden, was ihm im Moment eher hilft :-)

Aber worauf ich eingentlich hinaus wollte ist dein Vorschlag <35455.html>. Die, wie du bezeichnest kompliziert Form, verstößt gegen die Entitätsintegrität und gegen die zweite Normalform. Gebe zu, daß meine tbl_Kategorie nicht 100% der zweiten Normalform entspricht, aber sonst wäre es noch komplizierter geworden <g>.

Mein Vorschlag <35455.html> bildet eine typische Baumstruktur (auch für Objekte) in einer relationalen Datenbank ab. Beispiele sind: Dateisysteme, Katalogstrukturen, Organistationen etc.
Die Vorteile gegenüber Deinem Vorschlag sind:

  • Jedes Element (ob Wurzel, Knoten oder Blatt) weiss nur gerade das nötigste über die direkt darüber- und darunterliegende Elemente.
  • Innerhalb eines Astes der Baumstruktur können beliebig Knoten und Blätter gemischt werden.
  • Es ist eine sortierreihenfolge innerhalb des Astes gegeben.
  • Ganze Äste der Struktur können mit einer Datensatzänderung innerhalb der Baumstruktur verschoben werden.

Die Nachteile meines Vorschlages:

  • Das Löschen ganzer Äste muss durch rekursive Funktionen erfolgen (-> Garbage Collection :-( Du sagst es ...). Dies kann nicht mehr über einfache SQL-Statements realisiert werden. Dazu sind Stored-Procedures oder Funktionen im Anwendungsprogramm notwendig.
  • Das physikalische Kopieren eines Astes muss ebenfalls über rekursive Funktionen erfolgen.

Im Grossen und Ganzen sehe ich jedoch bei baumartig (hierarchisch) strukturierten Daten, die sehr flexibel sein müssen, die Vorteile eher bei meinem Modell.

Mit besten Grüssen

Tom