Ilja: Baumstruktur in einem Statement abgrasen

Beitrag lesen

yo,

Du hast uns vorenthalten, weshalb das eine Lösung des Rekursionsproblems sein soll.

spät die erklärung, aber besser als gar keine. rekursionen machen probleme bei RDBMS, weil entweder bei direkter rekursion zeilen voneinder abhängig sind, bzw. indirekte rekursion bei zwei tabellen. diese ---> gegenseitigen <--- abhängigkeiten sind es, die probleme bereiten.

man muss sich vor augen führen, dass rekursion ein gängiges mittel in der praxis ist, also man kann nicht sagen, man darf es nicht benutzen. es eher man sollte es nicht benutzen.

sicherlich lassen sich bestimmte probleme damit lösen, indem ich zum beispiel NULL werte in bestimmten spalten zulasse. aber nicht immer geht das und es ergeben sich auch andere probleme.

probleme der direkten rekursion sind zum beispiel, wenn otto der chef von karl ist und karl der chef von otto. dann habe ich damit probleme der gegenseitigen abhängigkeit, man könnte weder karl noch otto löschen, die sich sicherlich mit wiederum extra regeln beheben lassen. aber ich muss bei solch einem daten-design immer wieder aufpassen.

ein anderes beispiel für indirekte rekursion wären fußballspieler. dabei gibt es eine tabelle spieler und eine tabelle manschaften. jeder spieler muss einer manschaft zugeordnet sein und jede manschaft hat einen kapitän. bei dieser gegensaeitigen abhängkeit der zwei tabelle habe ich nun das ei und henne problem, ich kann keinen spieler eingeben, weil es noch keine manschaft gibt. und ich kann keine manschaft eingeben, weil es noch keinen spieler gibt, der kapitän sein kann.

was macht nun eine zusätzliche tabelle ? nun, es nimmt die gegenseitige abhängigkeit raus. im beispiel der direkten rekursion mit den chefs würden die beiden ids nun in einer zusätzlichen tabelle gespeichert werden und ich könnte sie problemlos löschen, weil ja beide personen für sich nicht gelöscht werden, sondern nur die beziehung untereinander in der zusätzlichen tabelle. eine gegenseitige abhängigkeit ist somit nicht mehr möglich.

Ilja