Begitulah cara saya melakukannya. Saya memiliki is_deleted
bidang yang default ke 0. Kemudian kueri cukup centang WHERE is_deleted = 0
.
Saya mencoba untuk menjauh dari hard-deletes sebanyak mungkin. Kadang-kadang diperlukan, tetapi saya menjadikannya sebagai fitur khusus admin. Dengan begitu kami dapat menghapus secara paksa, tetapi pengguna tidak dapat...
Sunting: Bahkan, Anda bisa menggunakan ini untuk memiliki beberapa "lapisan" penghapusan lunak di aplikasi Anda. Jadi masing-masing bisa menjadi kode:
0
-> Tidak Dihapus1
-> Dihapus Lunak, muncul dalam daftar item yang dihapus untuk pengguna manajemen2
-> Soft Dihapus, tidak muncul untuk pengguna mana pun kecuali pengguna admin3
-> Hanya muncul untuk pengembang.
Memiliki 2 level lainnya akan tetap memungkinkan manajer dan admin untuk membersihkan daftar yang dihapus jika terlalu panjang. Dan karena kode front-end hanya memeriksa is_deleted = 0
, transparan ke frontend...