[ASP] Schwieriges rekursives SQL-Problem

Andreas Müller activeserverpages at glengamoi.com
Tue, 15 Feb 2005 17:40:57 +0100


Hi Wallus (?)

Danke für deine Antwort.

Wenn ich dich richtig verstanden habe, dann war mir das schon klar. Ich
hab's halt mit meinen Tabellen etwas anders gelöst (in der Tabelle "tblKat"
verweist das Feld "Parent" ja auf das Feld "ID" der selben Tabelle und ist
damit rekursiv). ABER: die Frage stellt sich bei mir beim SQL-Statement. Wie
muss das aussehen?

Man könnte das Problem ja auch mit einer rekursiven ASP-Funktion angehen,
aber dann mach' ich ja gegebenenfalls unmengen von Recordsets auf... Das
kann's doch auch nicht sein.


Gruss
Andreas 




> High Andreas,
> 
> das ist was typisches fuer Informatiker (Verkettete Listen).
> Das macht man wie folgt.
> Jeder Eintrag, egal ob Kapitel oder sonstwas, wird in einer 
> Haupttabelle mit einer ID eingetragen ( und natuerlich einem 
> Typ (Kapitel, Text, Liste). In der entsprechenden Tabelle des 
> Typs stehen dann die Eigenschaftem ( Ueberschrift, der 
> eigentliche Text u.s.w.).
> Zu jedem Eintrag wird die ID des  Parent eingetragen ( wenn 
> Du willst auch ein Spalte Aktiv, noch besser eine extra 
> Tabelle mit Filter-Eigenschaften fuer jede ID.).
> Ein rekursive Funktion baut Dir dann deinen Baum zusammen.
> Quoting Andreas Müller <andreas-mueller@amcmueller.ch>:
> 
> > Hallo & guten Nachmittag!
> >
> > Ich bin am Aufbau eines Verzeichnisses mit Kategorien und 
> > Unterkategorien (beliebig tief) und Einträgen, die via 
> > Verknüpfungstabelle mit den Kategorien verknüpft sind. Im 
> folgenden kurz die Tabellen.
> >
> > tblKat:
> > *******
> > ID (INT)
> > Titel (TEXT/NVARCHAR)
> > Beschreibung (MEMO/NTEXT)
> > Parent (INT)
> > Reihenfolge (INT)
> > Aktiv (BIT)
> >
> > tblEintrag:
> > ***********
> > ID (INT)
> > Titel (TEXT/NVARCHAR)
> > Beschreibung (MEMO/NTEXT)
> > Aktiv (BIT)
> >
> > tblKatEintrag:
> > **************
> > KatID (INT)
> > EintragID (INT)
> >
> >
> >
> > Jetzt möchte ich pro Kategorie-Parent-Ebene immer alle 
> aktiven direkt 
> > unsterstellten Kategorien (falls sie denn selber oder 
> irgendwo tiefer 
> > aktive Einträge haben) sowie die Anzahl darin enthaltener aktiver 
> > Einträge (aus allen aktiven Unterkategorien zusammen) ausgeben.
> >
> >
> > Falls das als Erklärung nicht reicht: ich möchte, dass es 
> am Schluss 
> > irgendwie so aussieht wie bei ASPIN.com mit der Kategorie-Ansicht, 
> > wobei eben einerseits Kategorien deaktivert werden können 
> (und damit 
> > auch deren Unterkategorien nicht einbezogen werden sollten) und 
> > andererseits eben Kategorien, die keine Einträge haben 
> nicht angezeigt werden sollen.
> >
> >
> > Kann mir irgendwer einen Tip geben, wie ich das SQL-mässig in den 
> > Griff kriege?!? Laufen sollte es auf Access und SQL2000.