Аз така го правя. Имам is_deleted поле, което по подразбиране е 0. След това заявките просто проверяват WHERE is_deleted = 0 .
Опитвам се да стоя далеч от всякакви твърди изтривания, доколкото е възможно. Понякога са необходими, но аз го правя функция само за администратор. По този начин можем да изтрием трудно, но потребителите не могат...
Редактиране: Всъщност можете да използвате това, за да имате множество „слоеве“ на меко изтриване в приложението си. Така че всеки може да бъде код:
0-> Не е изтрито1-> Soft Deleted, показва се в списъци с изтрити елементи за потребители на управление2-> Soft Deleted, не се показва за никой потребител, освен потребители с администратор3-> Показва се само за разработчици.
Наличието на другите 2 нива все пак ще позволи на мениджърите и администраторите да изчистят изтритите списъци, ако станат твърде дълги. И тъй като предният код просто проверява за is_deleted = 0 , той е прозрачен за интерфейса...