Ich bin froh, diesen Thread gefunden zu haben. Auch ich habe mich gefragt, was die Leute über dieses Thema denken. Ich habe das "als gelöscht markiert" seit ungefähr 15 Jahren auf vielen Systemen implementiert. Wann immer ein Benutzer anrief, um zu sagen, dass etwas versehentlich gelöscht wurde, war es sicherlich viel einfacher, es als nicht gelöscht zu markieren, als es neu zu erstellen oder aus einem Backup wiederherzustellen.
Wir verwenden postgresql und Ruby auf Schienen. Es sieht so aus, als könnten wir dies auf zwei Arten tun, Schienen ändern oder einen Ondelete-Trigger hinzufügen und stattdessen eine pl / pgsql-Funktion ausführen, um sie als gelöscht zu markieren. Ich neige mich zu Letzterem.
In Bezug auf Leistungstreffer wird es interessant sein, die Ergebnisse von EXPLAIN-ANALYZE auf großen Tabellen für wenige gelöschte Elemente sowie viele gelöschte Elemente zu sehen.
In Systemen, die im Laufe der Zeit verwendet wurden, neigen neue Benutzer dazu, alberne Dinge wie das versehentliche Löschen von Dingen zu tun. Wenn Personen in einer Position neu sind, haben sie alle Zugriffsrechte der Person, die zuvor in dieser Position war, außer ohne Erfahrung. Wenn Sie versehentlich etwas löschen und sich schnell erholen können, können alle schnell wieder arbeiten.
Aber wie jemand sagte, manchmal benötigen Sie diesen bestimmten Schlüssel aus irgendeinem Grund zurück. An diesem Punkt müssten Sie ihn wirklich löschen und dann die Datensätze neu erstellen (beim Wiederherstellen und Ändern des Datensatzes).