php - Comment la base de données détermine-t-elle si une donnée a été modifiée?
大家讲道理
大家讲道理 2017-07-07 10:35:07
0
7
1612

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 ?

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

répondre à tous(7)
typecho

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.

伊谢尔伦

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

黄舟

Verrouillage optimiste Verrouillage optimiste Verrouillage optimiste

给我你的怀抱

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

大家讲道理

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

女神的闺蜜爱上我

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.

为情所困

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

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal