sql >> Base de Datos >  >> RDS >> Mysql

Prácticas recomendadas de eliminación temporal (PHP/MySQL)

Así es como lo hago. Tengo un is_deleted campo que por defecto es 0. Luego, las consultas solo marcan WHERE is_deleted = 0 .

Trato de mantenerme alejado de cualquier borrado duro tanto como sea posible. A veces son necesarios, pero lo convierto en una función solo para administradores. De esa manera, podemos eliminar de forma permanente, pero los usuarios no pueden...

Editar: De hecho, podría usar esto para tener múltiples "capas" de eliminación temporal en su aplicación. Así que cada uno podría ser un código:

  • 0 -> No eliminado
  • 1 -> Eliminado temporalmente, aparece en las listas de elementos eliminados para los usuarios de administración
  • 2 -> Eliminado temporalmente, no aparece para ningún usuario excepto para los usuarios administradores
  • 3 -> Solo aparece para desarrolladores.

Tener los otros 2 niveles aún permitirá a los gerentes y administradores limpiar las listas eliminadas si son demasiado largas. Y dado que el código de front-end solo busca is_deleted = 0 , es transparente para la interfaz...