Rekursionen in sql

hi!

wenns um foren etc. geh komme ich des öfter in die unangenehme situation, rekursionen zu nutzen. nichts gegen rekursionen - sie sind ein geschenk binerias (meine persönliche programmier-göttin). dummerweise aber kommt das für die datenbank nicht so gut, da ich immer nur alle geschwister-datensätze auf eine query bekomme, d.h. 1 query pro gruppe. bei vielen verschachtelten postings und einer ansicht über viele rekursionstiefen wird das ungemütlich.

beispiel an folgender tabelle tbl_forum
frm_id
frm_father_id
frm_text

dann ist das ein dauerndes (php) ‚select * where frm_father_id=‘.$id - und das für alle geschwisterdatensätze!

kann man sowas nicht auch schöner mit einem join (oder sonstwas) bauen, welches auch das (unfähige) my-sql verträgt?
gibt es da vorgefertigte standardlösungen?
warum ist der himmel grün?
hat das überhaupt sinn; aber eine antwort auf diese frage hätte ich mir auch vorher überlegen können …

nur antworten, wenn man zuviel zeit hat. steht für kein bestimmtes problem, und lösung is auch nicht dringend erforderlich.

danke,

  • stefan

hi, wo liegt das Problem in PHP die Rekursion zu proggen? hab ich mal ausprobiert - ging gut.
ach so, bei meinem experiment ging es mir drum auch die binärdaten (attachments) in der mysql zu halten, damit man mit einem einfachen mysqldump wirklich *alles* sichert und nicht noch auf ein file-verzeichnis achten muss. ging dann auch :wink:
bei interesse schicke mal das teil, aber vorsicht! das ist noch ganz wüster unstrukturierter code, aber wichtig ist wohl eh nur die rekursion für dich…

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

hi, wo liegt das Problem in PHP die Rekursion zu proggen? hab
ich mal ausprobiert - ging gut.
ach so, bei meinem experiment ging es mir drum auch die
binärdaten (attachments) in der mysql zu halten, damit man mit
einem einfachen mysqldump wirklich *alles* sichert und nicht
noch auf ein file-verzeichnis achten muss. ging dann auch :wink:
bei interesse schicke mal das teil, aber vorsicht! das ist
noch ganz wüster unstrukturierter code, aber wichtig ist wohl
eh nur die rekursion für dich…

nah, die rekursionen in php zu coden ist eh einfach. mir ging es nur darum, ob es auch den alternativen weg in plain sql gibt … da die mysql-queries wie wahnsinnig raufgehen, macht man es per php.
sollte mich mal nach fachliteratur zum thema umsehen …

trotzdem danke,

  • stefan

nah, die rekursionen in php zu coden ist eh einfach. mir ging
es nur darum, ob es auch den alternativen weg in plain sql
gibt … da die mysql-queries wie wahnsinnig raufgehen, macht
man es per php.
sollte mich mal nach fachliteratur zum thema umsehen …

trotzdem danke,

  • stefan

Nochmal hi,
ich frage mich gerade, ob das in sql per definition nicht gehen kann, weil sql doch nur *einen* zustand kennt. Rekursionen beruhen aber auf Daten eines vorherigen oder nachfolgenden Zustandes…

Grübel, grübel - sollte also per definition unmöglich sein…

Gruß
Thomas

Hallo,
sowas geht unter SQL2 nicht, evtl. aber unter SQL3.
Schlagwort wäre „recursive union“. Müßte einiges
dazu im Netz stehen.

Gruss
Enno