Bonjour,

Je développe actuellement un CMS avec une gestion d'utilisateurs (logique jusque là). Et je vais changer le type de base de données pour passer sous l'engine InnoDB de MySQL.
Engine qui supporte la gestion des clés étrangères, qui permet donc de faire un delete on cascade.

Ma question est donc:
Lorsque un utilisateur est supprimé du CMS, est-ce que les articles qu'il a rédigé devrait être également supprimés (utilisation du on delete cascade ici)? Ou les laisser en base de données mais à ce moment là l'article n'aurait plus d'utilisateur attitré.

Merci
Modifié par Baptouuuu (22 May 2012 - 09:25)
Bonjour,

Il n'y a pas de règle absolue. C'est à toi de décider comment tu souhaites gérer ce cas de figure.
Si je le fais via le on delete cascade, il n'y aura pas de choix vu que c'est la bdd qui fait le travail tout seul.
Et c'est trop dur d'écrire 2 requêtes et de choisir l'une ou l'autre selon le choix de l'utilisateur ?
Non pas du tout ^^ Mais vu que la bdd le propose ça aurait été sympa d'utiliser cette fonctionnalité
Salut...

L'innoDb est en effet très pratique pour ce genre de gestion de clés..

En revanche, revenons sur el fond Ethique de ta question..

Imaginons un forum, je mets des réponses pertinentes, et puis je pars pour x raisons... pour autant je ne vois pas de contre indication à ce que mes publications restent..

Dès lors que l'on a une action participative, il convient de conserver les messages et de plutôt signaler un status de type (ancien membre)

En revanche tu peux tout à fait proposer une option lors de la désinscription pour out effacer, mais les citations, les réponses directes ou les fils de discussion sans le deuxième ou le Xième participant ça fait tâche Smiley cligne
Modérateur
Bonjour, certains CMS offrent des options étendues, d'autre pas. Mais en gros les différentes options sont:

1) supprimer tout le contenu
2) supprimer certains contenu
3) supprimer aucun contenu

Si on garde du contenu, comme gère-t-on cela:

- Remplacer le user par un user anonyme dans chaque article publié. ( En gros comme s'il était rédigé par une personne non connectée ayant rempli un champ de type nom. )
- Garder un compte fantôme. Par droit on supprime toute les informations personnelles mais on garde l'username pour que le système puisse continuer à afficher l'auteur. On ne peut plus se connecter sur ce compte.
- Autre?

Finalement, si on souhaite faire à option (garder/pas garder) il convient encore de définir si l'utilisateur peut avoir accès à l'option ou seul l'administrateur du site.
Merci de vos réponses, plein de solutions possible au final.

Petite précision, les utilisateurs ne peuvent pas s'inscrire d'eux même sur le CMS. Dans mon cas les utilisateurs enregistrés sont des personnes qui peuvent administrer le site, par conséquent si un utilisateur est supprimé c'est de la volonté d'un administrateur (ou autre personne ayant les droits de gestion suffisants).

Remarque cela n'enlève pas le fait que la personne aurait pu écrire de bons articles et qu'il serait judicieux de les garder.

Le compte anonyme me semble être une bonne solution.