Page 1 sur 1

Bonne pratiques suppression de données

Posté : 15 avr. 2011, 13:38
par Yosh
Salut à tous,

J'aimerais savoir de quelles façon vous gérer la suppression de données??

Physiquement, virtuellement (tag de la donnée à l'état supprimé)?

Dans la plupart de mes applications je supprime physiquement les données et cela peut poser problème lorsque qu'une donnée fait référence à une autre qui à été supprimé.

En attente de vous lire.

Re: Bonne pratiques suppression de données

Posté : 15 avr. 2011, 13:56
par macgawel
Bonjour.

Ca dépend :mrgreen:

Si tu estimes qu'on peut avoir besoin d'une donnée supprimée, ça peut être intéressant de la conserver - et donc de juste la flagger.
Par exemple, pour de la facturation, si tu "supprimes" un article tu peux avoir besoin de le conserver, histoire de pouvoir ressortir des vieilles factures correctement.
Mais dans le cas général, on peut la supprimer purement et simplement.

Après, pour le problème de la gestion en cas de référence ailleurs, c'est (normalement) parfaitement géré par le SGBD, à coup de FOREIGN KEYS et de ON DELETE (SET NULL |CASCADE)

Re: Bonne pratiques suppression de données

Posté : 16 avr. 2011, 01:45
par devlop78
Oui, la suppression n'est pas toujours une bonne chose. Par exemple, dans le cadre d'une application de suivi de commandes, tu as des utilisateurs, et des commandes, pour faire simple. Si tu supprimes l'utilisateur, que faire ? Supprimer les commandes ? Impensable ... Tu perdrais toute information pour les suivre, et pire, cela nuirais à la cohérence globale du service. Mettre NULL sur l'utilisateurs ? Même problème. Donc, le mieux ici est tout simplement de "désactiver" l'utilisateur, donc de bien voir sa présence dans les jeux de résultats, mais ne pas lui permettre de se connecter, ne pas l'afficher dans certaines listes (ex: destiner la commande à), etc. Après, c'est vraiment une question de réflexion sur mesure.

Re: Bonne pratiques suppression de données

Posté : 16 avr. 2011, 11:41
par Titiii
Moi je mets simplement une variable qui vaut 1 ou 0. Et donc si la variable vaut 0, le message concerné s'affiche, et si il vaut 1, il ne s'affiche pas.
Tout simplement ^^

Et, concernant les membres, j'ai une autre table, "ban", et si le membre est dedans, lorsqu'il se connecte, il voit pourquoi et pendant combien de temps il est banni.