Cieszę się, że znalazłem ten wątek. Ja też się zastanawiałem, co ludzie myślą o tym problemie. Zaimplementowałem opcję „oznaczona jako usunięta” od około 15 lat w wielu systemach. Za każdym razem, gdy użytkownik dzwonił, aby powiedzieć, że coś zostało przypadkowo usunięte, z pewnością znacznie łatwiej było oznaczyć to jako nieusunięte, niż odtworzyć lub przywrócić z kopii zapasowej.
Używamy postgresql i Ruby na railsach, wygląda na to, że moglibyśmy to zrobić na 1 z dwóch sposobów, zmodyfikować railsy lub dodać wyzwalacz ondelete i zamiast tego wykonuje funkcję pl / pgsql, aby oznaczyć jako usunięte. Skłaniam się ku temu drugiemu.
Jeśli chodzi o wyniki wydajności, interesujące będzie zobaczyć wyniki EXPLAIN-ANALYZE na dużych tabelach do kilku usuniętych elementów, a także wielu usuniętych elementów.
W systemach używanych z biegiem czasu, które odkryłem, nowi użytkownicy mają tendencję do wykonywania głupich rzeczy, takich jak przypadkowe usuwanie rzeczy. Więc kiedy ludzie są nowi na stanowisku, mają wszystkie prawa dostępu osoby na tym stanowisku, z wyjątkiem braku doświadczenia. Przypadkowe usunięcie czegoś i możliwość szybkiego przywrócenia sprawi, że wszyscy szybko wrócą do pracy.
Ale jak ktoś powiedział, czasami z jakiegoś powodu możesz potrzebować tego konkretnego klucza z powrotem, w tym momencie musiałbyś go naprawdę usunąć, a następnie ponownie utworzyć rekordy (po przywróceniu go i zmodyfikowaniu rekordu).