Je développe une application php/mysql qui gère plusieurs utilisateurs simultanés. Je pense à la meilleure approche à adopter pour verrouiller/mettre en garde contre les enregistrements en cours de visionnage/d'édition.verrouillage de l'enregistrement de l'application multi-utilisateur - meilleure méthode?
Le scénario à éviter est deux utilisateurs qui regardent l'enregistrement, l'un effectuant un changement, puis l'autre faisant de même - avec la possibilité qu'un changement pourrait remplacer le précédent. Dans les dernières versions de WordPress, ils utilisent une certaine méthode pour détecter cela, mais cela ne semble pas totalement fiable - renvoyant souvent des faux positifs, du moins selon mon expérience. Je suppose qu'une certaine forme d'ajax doit être en place pour «pinguer» l'application et lui faire savoir que l'enregistrement est toujours en cours de visualisation/modification (sinon, un utilisateur peut simplement fermer la fenêtre de leur navigateur, puis comment l'application sache que). Une autre solution que j'ai pu voir est de vérifier la dernière mise à jour quand un enregistrement est soumis pour mise à jour, pour voir si entre temps il a été mis à jour ailleurs - et ensuite offrir à l'utilisateur le choix de continuer ou d'abandonner ses propres changements . Peut-être que j'abuse du mauvais arbre en termes de solution - quelles sont les expériences des gens dans la mise en œuvre de cette exigence (ce qui doit être assez commun)?
C'est certainement l'approche que je préconisais - beaucoup plus rapide à mettre en œuvre que toute autre solution de luxe, et plus fiable. – BrynJ
Vous pouvez toujours construire la solution AJAX en plus de cette idée - ping ou demander l'horodatage soit juste avant de sauvegarder ou régulièrement, puis demander à l'utilisateur ce qu'ils aimeraient faire - peut-être donner une option de 'sur-écriture' si leur niveau d'utilisateur est tel qu'ils sont autorisés. – Paul