Tak to dělám já. Mám is_deleted
pole, které má výchozí hodnotu 0. Poté dotazy stačí zkontrolovat WHERE is_deleted = 0
.
Snažím se co nejvíce vyhýbat jakýmkoli tvrdým mazáním. Někdy jsou nutné, ale dělám to pouze pro správce. Tímto způsobem můžeme natvrdo mazat, ale uživatelé ne...
Upravit: Ve skutečnosti byste to mohli použít k tomu, abyste ve své aplikaci měli více „vrstev“ měkkého mazání. Každý by tedy mohl být kód:
0
-> Nesmazáno1
-> Soft Deleted, zobrazuje se v seznamech odstraněných položek pro uživatele správy2
-> Soft Deleted, nezobrazuje se žádnému uživateli kromě administrátorů3
-> Zobrazuje se pouze pro vývojáře.
Další 2 úrovně stále umožní správcům a správcům vyčistit smazané seznamy, pokud jsou příliš dlouhé. A protože front-endový kód pouze kontroluje is_deleted = 0
, je pro frontend transparentní...