Hello,
So könnte man gelöschte Sätze erstmal loswerden, aber im Fehlerfall doch noch recherchieren.
Man könnte beim "Löschen" auch auf das physische Löschen verzichten, und nur ein Flag oder einen Matchcode setzen (Datum, User). Dann müsste allerdings die Applikation Rücksicht darauf nehmen.
Das könnte man dann am besten regeln, indem überhaupt nicht mehr direkt auf Select, Insert, Update und Delete zugegriffen wird, sondern man sich dafür stored Procedures baut.
Diese wären dann auch in der Lage, vertikale Rechtevergabe zu berücksichtigen. So könnte man z.B. festlegen, dass nur noch der User, dem der Datensatz "gehört", ihn auch ändern darf, oder nur eien bestimmte Gruppe dieses Recht hat, oder oder oder...
Das sofortige Löschen von (indizierten) Datensätzen ist ohnehin nicht so günstig für die Performance der Datenbank. Es ist besser, man besorgt das gesammelt in Schwachlastzeiten. Und dafür wäre doch die Lösung mit der Deleted-Spalte ganz gut geeignet.
Ein harzliches Glückauf
Tom vom Berg