É assim que eu faço. Eu tenho um
is_deleted campo cujo padrão é 0. Em seguida, as consultas apenas verificam WHERE is_deleted = 0 . Eu tento ficar longe de qualquer hard-delete o máximo possível. Eles são necessários às vezes, mas faço disso um recurso apenas para administradores. Dessa forma, podemos excluir, mas os usuários não podem ...
Editar: Na verdade, você pode usar isso para ter várias "camadas" de exclusão suave em seu aplicativo. Então cada um pode ser um código:
0-> Não excluído1-> Soft Deleted, aparece em listas de itens excluídos para usuários de gerenciamento2-> Soft Deleted, não aparece para nenhum usuário, exceto usuários admin3-> Aparece apenas para desenvolvedores.
Ter os outros 2 níveis ainda permitirá que gerentes e administradores limpem as listas excluídas se ficarem muito longas. E como o código front-end apenas verifica
is_deleted = 0 , é transparente para o frontend...