icone de liste à puce

alternative au crud

Le CRRUS(create read restore update softdelete), est mon alternative au CRUD(create read restore delete). Inspiré de softdeleteable de symfony, cela peut s'appliquer à n'importe quel language communiquant avec une base de données. Cette méthode permet de restaurer du contenu supprimé.

Comment ça fonctionne:

  • Ajouter un champ de type boolean avec comme nom softDelete qui vaut 0 à toutes les tables contenant des éléments supprimables
  • Définissez plusieurs niveaux de hiérarchie de rôles d'utilisateur. admin et superAdmin sont les rôles qui pourront supprimer des éléments mais seul le rôle superadmin pourra voir des éléments supprimés et restaurer des éléments
  • Changer votre requête de delete par un update qui définit le champ softDelete à 1
  • Ajouter une route et une action qui définit le champ softDelete à 0, ce sera le restore. Seul le rôle superadmin pourra voir le bouton restore sur les éléments supprimés.
  • Ensuite, vous l'aurez compris, il suffira de créer votre filtre, c-à-d ajouter une condition avant de renvoyer des éléments côté back-office: si l'utilisateur a le rôle superAdmin, je garde la requête comme elle était mais sinon, je modifie la requête pour ne pas prendre les éléments dont softDelete vaut 1.
    Côté front, je change toutes les requêtes pour ne pas prendre les éléments dont softDelete vaut 1. Idem si j'ai des fonctions qui retournent des comptes des enregistrements, il ne faut pas qu'ils comptent des éléments supprimés/filtrés cool

Le

modification le

réactions (1)

  • 1 0
réagir
avatar de Jul6Art

Jul6Art, répondre

Le softDelete, c'est pratique sur symfony quand on gère mal le cascade=persist

partager