Mysql
 sql >> Base de données >  >> RDS >> Mysql

Meilleures pratiques de suppression réversible (PHP/MySQL)

C'est comme ça que je fais. J'ai un is_deleted champ qui par défaut est 0. Ensuite, les requêtes vérifient simplement WHERE is_deleted = 0 .

J'essaie de rester à l'écart de toute suppression définitive autant que possible. Ils sont parfois nécessaires, mais j'en fais une fonctionnalité réservée aux administrateurs. De cette façon, nous pouvons supprimer définitivement, mais les utilisateurs ne peuvent pas...

Modifier : En fait, vous pouvez l'utiliser pour avoir plusieurs "couches" de suppression réversible dans votre application. Ainsi, chacun pourrait être un code :

  • 0 -> Non supprimé
  • 1 -> Soft Deleted, apparaît dans les listes d'éléments supprimés pour les utilisateurs de gestion
  • 2 -> Soft Deleted, ne s'affiche pour aucun utilisateur à l'exception des utilisateurs admin
  • 3 -> Ne s'affiche que pour les développeurs.

Avoir les 2 autres niveaux permettra toujours aux gestionnaires et aux administrateurs de nettoyer les listes supprimées si elles deviennent trop longues. Et puisque le code frontal vérifie simplement is_deleted = 0 , c'est transparent pour le frontend...