Hallo Rolf,
Es kommt darauf an, ob man Aufbewahrungsfristen für die Daten zu beachten hat.
Und das müssen nicht einmal zwingend rechtliche Vorschriften der Aufbewahrung die Ursache sein, wie Du weiter unten aufführst.
Wenn nicht, kann man einfach löschen. Wenn doch, ja, dann braucht man ein "Deleted" Flag oder ein "Gültig_Bis" Datenfeld, und muss genau überlegen, wie man die Suchen baut, um nur gültige Rows zu verarbeiten. Ggf. muss man die Gültigkeit nicht nur auf Personenebene festlegen.
Bei einer "Gültig-Bis" Speicherung muss man dann auch noch einen Aufräumjob haben, der Sätze entfernt, die ungültig sind und deren Aufbewahrungsfrist abgelaufen ist. Einer solchen Pflicht-Aufbewahrung kann ein Kunde nicht widersprechen. Weil - ist ja Pflicht.
Nimm nur den reumütigen User, der gestern noch nichts mehr mit Rudis DB zu tun haben wollte, sich aber nach einmal darüber schlafen doch entschieden hat, wieder im Datenbestand sein zu wollen. Wie gut, wenn man ein Delete Flag hat.
Demnach würde ich eher umgekehrt agieren, nämlich, dass ich nur dann physikalisch lösche, wenn rechtliche Vorschriften mich hierzu zwingen (oder moralische Aspekte eine Rolle spielen), es ohnehin nur um temporäre Daten geht oder die Daten wirklich nur Ballast sind, der nie wieder gebraucht wird.
Alle anderen Daten würde ich im Datenbestand lassen und über einen Delete-Flag "deaktivieren".
Roy