Hallo,
Kann man referenzielle Integrität eigentlich nicht auch in einer Tabelle verwenden?
Wenn Dein DBMS referenzielle Integritäten definieren kann, kann man in der Regel auch Beziehungen einer Teabelle auf sich selbst definieren.
Wenn Du den Sachverhalt mit 5 Tabellen besser abbildest, weil es eben eine fuenfstufige Datenstruktur ist, dann solltest Du das auch machen. - Belohnt wirst Du durch vom RDB(M)S sichergestellte referenzielle Integritaet (andere Integritaeten kennt das System uebrigens auch, was hilfreich ist). Ausserdem durch wesentliche bessere Performance, vgl. mit "selbstverzeigerten" Datensaetzen in einer Tabelle.
Irgendwie sehe ich hier keinen Vorteil gegenüber einer Strukturtabelle. Eigentlich sehe ich eher Nachteile. Wie willst Du es mit fünf Strukturtabellen schaffen, daß, wie im Ausgangsbeispiel angeführt, Artikel in jeder beliebigen Ebene eingehängt werden können, ohne Probleme mit den Beziehungen zu bekommen? Imho würdest Du fünf weitere Tabellen benötigen, um die Beziehungen der Artikel mit den jeweiligen 'Verzeichnistabellen' zu definieren. Was wiederum zur Folge hat, daß man, wenn es denn so gefordert sein sollte, sich überlegen muß wie man es verhindert, daß ein Artikel plötzlich in mehreren 'Verzeichnissen' in unterschiedlichen Ebenen auftaucht.
Ich halte den Ansatz von Andreas in [pref:t=53383&m=295932] für durchaus geeignet, um die geforderten Gegebenheiten in einer Datenbank sauber abzubilden. Und wenn die Datenbank nicht über eine Funktionalität verfügt, die Rekusrionen aufzulösen, dann muß halt externe Programmlogik her. Aber das ist in Deinem Ansatz, soweit ich ihn richtig verstanden habe, auch notwendig.
Grüße
Klaus