Matthias Apsel: Liste mit Kategorien und Unterkategorien (2. Lösungsidee)

Beitrag lesen

Om nah hoo pez nyeetz, Melvin Cowznofski!

Aus meiner Sicht wäre folgende Tabelle sinnvoll
ID | KNr | KName | Parent | Linktext | Linkziel
In der Spalte Parent steht die KNr. der Elternkategorie bzw. 0, wenn es kein Elternteil gibt.
Ich sehe nicht, wo du da Redundanzen erzeugst.

Wenn ich bei Deinem Beispiel den Namen einer Kategorie verändern möchte, kann ich das nicht an einer einzigen Stelle tun, sondern muss es bei jedem Link-Datensatz, der dieser Kategorie zugeordnet ist, ändern. Das ist doch wohl ein exemplarischer Fall, der nach Normalisierung geradezu schreit.

Nein. Der Name einer ganz konkreten Kategorie steht nur ein einziges Mal in der Tabelle. „KNr“ habe ich nur hinzugefügt, falls du irgendwie ein eigenes Ordnungssystem haben möchtest. Die Zuordnung Kategorie → Unterkategorie erfolgt entweder über die KNr oder die ID, wenn sich die Zuordnung ändert, musst du auch nur für die Kategorien, die eine neue Elternkategorie bekommen sollen, aktiv werden.

Du kannst mit dieser Tabelle Bäume beliebiger Tiefe abbilden (1:n-Beziehung). Die Struktur wieder herauszulesen ist ein anderes Problem. Was allerdings nicht geht, ist eine Kategorie mehreren Elternkategorien zuzuordnen (m:n).

Matthias

--
Der Unterschied zwischen Java und JavaScript ist größer als der zwischen Brie und Brieföffner.