Ich würde das SoftDelete aber nicht generell vorsehen sondern nur bei den Tabellen bei denen es sinnvoll ist.
Einspruch Euer Ehren, was ist denn sinnvoll?
Wenn gefragt wird wer hat denn da was wann gemacht, so beziehen sich (nach meiner Erfahrung) 50% der Nachfragen auf "sinnlose" Daten.
Ansonsten ist eigentlich schon alles wesentliches gesagt:
a) Constraints und Trigger nutzen
b) Ein Statusfeld/Statustabelle nutzen (ggf. mit Änderungsdatum)
c) Ein Journal führen
Dazu ein paar Anmerkungen:
Ein Journal ist "die" Möglichkeit um nachzuvollziehen was "ich hab garnichts gemacht" in Wirklichkeit war.
Wer die Möglichkeiten die a) bietet im Client nachbaut, ist selber schuld. Zum einen ist es auf dem Client wesentlich aufwendiger alle Nebeneffekte verschiedener Aktionen zu beherrschen, zum anderen gehört "Datenbankfunktionalität" auch zur Datenbank. Den Client hat nicht zu interessieren auf welche Art und Weise die
DB funktioniert, Er bekommt und versendet Daten. nicht mehr und nicht weniger.
Übrigens können auch Textbausteine für Rechnungen durchaus wichtig sein, wenn z.B. eine Änderung der Firma anstand und nachzuvollziehen ist ob die entsprechende Änderung auch zum richtigen Zeitpunkt eingerichtet war.
Gruß
K-H
@Perlsau
Zitat:
Bei diesem speziellen Chef würde ich ein Meldungsfenster aufpoppen lassen, das ihn jedesmal, wenn er einen Datensatz löschen will, daran erinnert: "Nicht doch, Cheffe, du weißt doch, daß du nicht selber löschen darfst, sondern immer mich zum Löschen holen sollst. Dein untertänigster Programmierer."
Leider nicht praxistauglich, da viele Chefs a) immer recht haben b) dies einmal nicht der Fall sein sollte automatisch a) in Kraft tritt.