Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1741 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  "Modération" des modifs dans un BDD

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

"Modération" des modifs dans un BDD

n°2103968
WoK_Michel
Posté le 29-09-2011 à 15:46:44  profilanswer
 

Bonjour à tous,
 
Prenons un exemple pour illustrer mon problème :
 
Je souhaite développer un site où les membres peuvent publier une annonce décrivant leur voiture. Leur du processus de création de l'annonce, ils sont amenés à remplir tout un tas de champs/cocher tout un tas de cases, etc, pour pouvoir entrer tout ce qui est nécessaire (description, critères, ...) dans la base de données.
 
On en vient à ma question : je souhaiterai que, une fois ce processus terminé, cette annonce ne soit pas publiée sur le site tant que l'administrateur ne l'approuve pas.
Bon a priori le plus simple est juste d'ajouter un champ dans ma bdd spécifiant si oui ou non cette annonce est validée. OK.
 
On en vient maintenant au vrai "problème". L'utilisateur aura toujours la possibilité d'éditer lui même son annonce (après publication sur le site), pour y modifier la photo, la description, que sais-je encore ... Mais encore une fois, ces modifications seront sujettes à la validation de l'administrateur, et en attendant cette validation l'annonce (dans son ancienne version) doit toujours etre disponible sur le site.
 
Du coup a priori il y a plusieurs possibilités : dupliquer chaque champ susceptible d'etre edité, ou alors avoir un duplicata de cette bdd (de ces tables) qui ferait tampon, i.e. stockerait les annonces apres modifs mais avant validation.
J'imagine qu'il y a d'autres solutions, possiblement encore meilleures.
 
Il me semble que ce genre de 'modération de modifications' est quelque chose qui est assez répandu, pourtant j'ai farfouillé des heures sur le net sans rien trouver de convaincant ... Un grand merci si vous avez la clé !
 
 
PS: Question subsidiaire : le top serait a la fin de voir immédiatement ce qui a été modifié par une opération qui trouverait la différence entre deux champs avant et apres modifs (pour voir par exemple quel mot a été changé). J'imagine que c'est possible en MySQL mais je sais pas trop quelle fonction utiliser. Mais bon, c'est accessoire, et c'est peut etre plus a voir coté javascript.
 
Merci encore

mood
Publicité
Posté le 29-09-2011 à 15:46:44  profilanswer
 

n°2103970
flo850
moi je
Posté le 29-09-2011 à 16:09:43  profilanswer
 

avoir deux tables : celle de tous les articles et une des articles publiées  
avoir une seul table et un moteur de template et générer le template html lors de la validation de la publication ou de la maj  
 
ou alors, plus simple : le fait de modifier l'annnonce la met hors ligne


---------------

n°2103975
rufo
Pas me confondre avec Lycos!
Posté le 29-09-2011 à 16:28:06  profilanswer
 

Faire comme dans SPIP : un statut pour l'article (ici, l'annonce) : brouillon, soumise à approbation, approuvée, publiée, supprimée... En fonction du statut, t'affiches ou pas l'annonce :/ Et comme proposé par flo850, si l'utilisateur modifie l'annonce, elle repasse dans un statut qui la retire temporairement de la publication.
 
Tu peux aussi mettre en cache les annonces publiées ce qui évite d'aller chercher les infos en base...


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2103980
WoK_Michel
Posté le 29-09-2011 à 16:37:10  profilanswer
 

Merci pour vos réponses, mais le but c'est justement de ne pas retirer l'annonce, et que en cas de refus des modifications, l'annonce reste comme avant.
 
J'essaye de m'inspirer des gestions de versions mais pas sûr que ce soit super pratique ...

n°2103981
rufo
Pas me confondre avec Lycos!
Posté le 29-09-2011 à 16:59:11  profilanswer
 

Comprends pas : l'admin ne veut pas que l'annonce soit publiée en l'état et toi, tu laisses le dernier mot à l'utilisateur :??:


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2103982
WoK_Michel
Posté le 29-09-2011 à 17:07:52  profilanswer
 

Bah non :
 
1- L'utilisateur publie une annonce
 
2- L'admin valide. La version 1.0 de l'annonce est sur le site
 
3- L'utilisateur modifie son annonce. Version 1.1
 
4- L'administrateur n'apprécie pas les changements, il les refuse. La Version 1.0 reste sur le site et la 1.1 passe à la trappe

n°2104397
Oliiii
Posté le 03-10-2011 à 09:53:44  profilanswer
 

Comme dit plus haut, travailles avec 2 tables, une tables avec toutes les annonces et une autre avec les annonces visible (publique).
 
L'utilisateur ne peut modifier que la table avec toutes les annonces et seul l'admin/moderateur peut faire passer les annonces d'une table a l'autre.
 
Si la modification est refusée la table publique ne change pas et la table avec toutes les annonces est mise a jour avec l'annonce publique.
Si c'est accepté la table publique est mise a jour avec les infos de l'annonce modifée.
Si l'utilisateur veut modifer 10x sont annonce avant que l'admin ai le temps d'y jetter un oeuil, pas de probleme l'admin ne verra jamais que la derniere version modifée sans avoir 10 copies qui traine.


Message édité par Oliiii le 03-10-2011 à 09:53:54
n°2104502
mrbebert
Posté le 03-10-2011 à 20:27:30  profilanswer
 

Autre approche, avoir dans la table 2 enregistrements pour chaque annonce, celle validée et celle modifiée mais non validée (il peut y avoir les 2 simultanément ou une seule des 2) :)  
Avec les changement d'état suivants :
- à la création : 1 ligne est enregistrée, à l'état "modifiée"
- à la validation : l'annonce précédemment validée est supprimée (si elle existe) et celle à l'état "modifiée" passe à l'état "validée".
- lors d'une modification : on insère 1 ligne à l'état "modifiée" ou on modifie celle qui est déjà à cet état. L'annonce précédemment validée (si elle existe) n'est pas touchée
 
Après, on peut raffiner les choses en ajoutant des états (en particulier un état correspondant à l'envoi d'une annonce devant être validée, pour distinguer les demandes en cours de modification et celles que l'utilisateur estime terminées et en attente de validation).


Message édité par mrbebert le 03-10-2011 à 20:29:16

---------------
Doucement le matin, pas trop vite le soir.

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  "Modération" des modifs dans un BDD

 

Sujets relatifs
Accéder à une BDD depuis un autre PC[Java EE] Installer une BDD
[Résolu] Afficher image d'une BDD avec PHP PDOSupprimer une seule entrée seulement dans une BDD
Comment creer un fichier de BDD ?Stocker des mots de passe dans une BDD
Supprimer BDD avec 'checkbox'Aide BDD sql
[Réglé] Caractères spéciaux BDD vers HTML 
Plus de sujets relatifs à : "Modération" des modifs dans un BDD


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR