Soft Deletes: Das Feature, das mehr kostet, als es einspart

Soft Deletes wirken zunächst einfach: eine deleted_at-Spalte hinzufügen, sie in jeder Abfrage herausfiltern, fertig. Sie tauchen in jedem ORM-Tutorial auf, in jedem SaaS-Boilerplate, in jeder Anleitung „So baust du eine Multi-Tenant-Anwendung". Sie fühlen sich an wie eine kostenlose Versicherung. In der Praxis sind sie eine Schema-Katastrophe in Zeitlupe, die Indizes beschädigt, Constraints bricht und über Jahre hinweg unsichtbare Datenlecks erzeugt.

Der Reiz ist real – Hard Deletes sind beängstigend, und deleted_at gibt dir eine Undo-Funktion. Aber zwischen dem, was Soft Deletes versprechen, und dem, was sie im großen Maßstab kosten, klafft eine erhebliche Lücke.