Saya senang menemukan utas ini. Saya juga bertanya-tanya apa pendapat orang tentang masalah ini. Saya telah menerapkan 'ditandai sebagai dihapus' selama sekitar 15 tahun di banyak sistem. Setiap kali pengguna menelepon untuk mengatakan sesuatu terhapus secara tidak sengaja, tentu jauh lebih mudah untuk menandainya sebagai un-delete daripada membuat ulang atau memulihkan dari cadangan.
Kami menggunakan postgresql dan Ruby pada rel. Sepertinya kami dapat melakukan ini dengan salah satu dari dua cara, memodifikasi rel atau menambahkan pemicu ondelete dan sebagai gantinya melakukan fungsi pl / pgsql untuk menandai sebagai dihapus. Saya condong ke arah yang terakhir.
Sedangkan untuk performance hits, akan menarik untuk melihat hasil EXPLAIN-ANALYZE pada tabel besar untuk beberapa item yang terhapus serta banyak item yang terhapus.
Dalam sistem yang digunakan dari waktu ke waktu, saya temukan, pengguna baru cenderung melakukan hal-hal konyol seperti menghapus sesuatu secara tidak sengaja. Jadi ketika orang baru dalam posisi mereka memiliki semua hak akses orang yang sebelumnya berada di posisi itu kecuali dengan pengalaman nol. Menghapus sesuatu secara tidak sengaja dan dapat memulihkan dengan cepat membuat semua orang kembali bekerja dengan cepat.
Tetapi seperti yang dikatakan seseorang, terkadang Anda mungkin memerlukan kunci tertentu itu kembali karena alasan tertentu, pada saat itu Anda harus benar-benar menghapusnya, lalu membuat ulang rekaman (saat membatalkan penghapusan dan memodifikasi rekaman).