Maison  >  Questions et réponses  >  le corps du texte

php - Comment la base de données détermine-t-elle si une donnée a été modifiée?

A et B accèdent à un ensemble de données sur la même page en même temps. A a modifié l'une des données de B n'a pas été actualisée, donc les informations que B voit sont avant que A ne la modifie à ce moment-là. doit modifier cette donnée . Comment puis-je rappeler à B que ces données ont été modifiées.

J'ai vu un moyen de connaître les données en fonction de l'heure de la dernière modification avant de modifier les données (sélectionnez * from xxx où updatetime = xxx et id= xxx). S'il est introuvable, cela signifie qu'il a été modifié. est trouvé, cela signifie qu'il a été modifié.

Je voudrais demander s'il existe une meilleure façon ?

大家讲道理大家讲道理2635 Il y a quelques jours1533

répondre à tous(7)je répondrai

  • typecho

    typecho2017-07-07 10:37:07

    Je me souviens que le verrouillage optimiste en veille prolongée est implémenté à l'aide du champ du numéro de version. Après chaque mise à jour réussie, la valeur du champ du numéro de version est incrémentée de 1.
    Avant la mise à jour, vérifiez d'abord si le numéro de version dans la base de données et la version. Les numéros enregistrés dans la page sont les mêmes, si le numéro de version devient plus grand, l'utilisateur est informé que d'autres utilisateurs ont modifié les données lors de l'édition.

    Bien sûr, vous pouvez également utiliser le verrouillage pessimiste. Lorsque vous entrez dans la page, utilisez select... for update pour verrouiller l'enregistrement. À ce stade, les autres utilisateurs ne peuvent pas modifier l'enregistrement verrouillé en même temps.

    répondre
    0
  • 伊谢尔伦

    伊谢尔伦2017-07-07 10:37:07

    Je vais faire ceci : ajoutez un champ, edit_num, +1 pour chaque modification, et comparez-le lorsque B doit être modifié.

    répondre
    0
  • 黄舟

    黄舟2017-07-07 10:37:07

    Verrouillage optimiste Verrouillage optimiste Verrouillage optimiste

    répondre
    0
  • 给我你的怀抱

    给我你的怀抱2017-07-07 10:37:07

    Un mécanisme de verrouillage optimiste est implémenté en ajoutant un champ de version aux données

    répondre
    0
  • 大家讲道理

    大家讲道理2017-07-07 10:37:07

    Ajoutez un champ à la table de donnéesupdate_at类型为TIMESATMP,默认值为CURRENT_TIMESTAMP, pas besoin de changer les autres
    Chaque fois que les données sont mises à jour, la valeur sera mise à jour automatiquement

    répondre
    0
  • 女神的闺蜜爱上我

    女神的闺蜜爱上我2017-07-07 10:37:07

    Ajoutez un champ de version à ces données. Le numéro de version commence à 0 par défaut. Il s'incrémentera automatiquement s'il n'est pas modifié. Vérifiez simplement si cette version est cohérente avec la version dans la base de données à chaque fois qu'elle est soumise.

    répondre
    0
  • 为情所困

    为情所困2017-07-07 10:37:07

    Ajoutez un champ de numéro de version à la table xxx

    répondre
    0
  • Annulerrépondre