Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Práticas recomendadas de exclusão reversível (PHP/MySQL)


É 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ído
  • 1 -> Soft Deleted, aparece em listas de itens excluídos para usuários de gerenciamento
  • 2 -> Soft Deleted, não aparece para nenhum usuário, exceto usuários admin
  • 3 -> 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...