Hi,
Da ein Datenbanksystem sowieso hochkomplex ist, ist so ein kleines kaskadierendes Löschen auch keine grosse Sache.
das Argument kenne ich. Warum Komplexitaet _jetzt noch_ vermeiden? Ist doch ohnehin alles schon so komplex. ;-)
Ich sehe Trigger, Contraints etc. einfach als zusätzliche Sicherheitsschicht und als "assert" gegen Programmfehler.
Man kann in der Datenzugriffsschicht grundsaetzlich alles machen, was die Trigger in der Datenschicht so machen. Ich sehe eigentlich nur einen sinnvollen Einsatz fuer Trigger fuer Alerts (Mitarbeiter X erfahert eine Aenderung des Datenfelds 'Monatsgehalt' in der Mitarbeitertabelle => Mail an den Personalchef.).
Allerdings ist meine Meinung da recht unsicher und unbestaetigt. Es ist schon interessant den Datendesigner bestimmte Datenzugriffe (kaskadierende Deletes und Trigger) bereits in seiner Datenschicht durchfuehren zu lasssen. Mein Gegenargument ist die Komplexitaet ("Ein kaskadierendes Delete hat den Delete-Trigger x ausgloest, der wiederum den Delete-Trigger y ausgeloest hat. Nun haben wir alle Datensaetze der Tabelle z geloescht, die im Jahr 1994 angelegt wurden." :-( :-)
Aber wer kann solche sehr schwierigen Fragen heute noch zuverlaessig beantworten? ;-)
Gruss,
Ludger