Đó là cách tôi làm. Tôi có is_deleted
trường mặc định là 0. Sau đó, các truy vấn chỉ cần kiểm tra WHERE is_deleted = 0
.
Tôi cố gắng tránh xa mọi hành vi khó xóa càng nhiều càng tốt. Đôi khi chúng cần thiết, nhưng tôi đặt đó là tính năng chỉ dành cho quản trị viên. Bằng cách đó, chúng tôi có thể xóa cố định, nhưng người dùng không thể ...
Chỉnh sửa: Trên thực tế, bạn có thể sử dụng điều này để có nhiều "lớp" xóa mềm trong ứng dụng của mình. Vì vậy, mỗi mã có thể là một mã:
-
0
-> Không bị xóa -
1
-> Đã xóa mềm, hiển thị trong danh sách các mục đã xóa cho người dùng quản lý -
2
-> Đã xóa mềm, không hiển thị cho bất kỳ người dùng nào ngoại trừ người dùng quản trị viên -
3
-> Chỉ hiển thị cho các nhà phát triển.
Có 2 cấp độ còn lại sẽ vẫn cho phép người quản lý và quản trị viên dọn dẹp danh sách đã xóa nếu chúng quá lâu. Và vì mã giao diện người dùng chỉ kiểm tra is_deleted = 0
, nó trong suốt với giao diện người dùng ...