php - データベースはデータが変更されたかどうかをどのように判断しますか?
大家讲道理
大家讲道理 2017-07-07 10:35:07
0
7
1588

A と B は、同じページ上の一連のデータに同時にアクセスします。A はデータの 1 つを変更しました。B のページは更新されていないため、B に表示される情報は A が変更される前のものです。この時点で、Bこのデータも変更する必要があります。このデータが変更されたことを B に通知するにはどうすればよいですか。

データを変更する前の最終変更時刻に基づいてこのデータを見つける方法を確認しました (更新時刻 = xxx および ID= xxx の xxx から * を選択します)。見つからない場合は、変更されたことを意味します。確認してください。到着時に説明は変更されていません。

もっと良い方法があるかどうかお聞きしたいのですが?

大家讲道理
大家讲道理

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

全員に返信(7)
typecho

休止状態での楽観的ロックは、更新が成功するたびにバージョン番号フィールドを使用して実装されていると記憶しています。
更新する前に、まずデータベース内のバージョン番号とバージョンが一致しているかどうかを確認してください。ページに保存されているバージョン番号が同じである場合、バージョン番号が大きくなると、編集中に他のユーザーがデータを変更したことを示すメッセージが表示されます。

もちろん、ペシミスティック ロックを使用することもできます。ページに入るときに、更新に select... を使用して、この時点で、他のユーザーがロックされたレコードを同時に編集することはできません。

いいねを押す +0
伊谢尔伦

これを実行します - フィールド edit_num を追加し、変更ごとに +1 し、B を変更する必要がある場合にそれを比較します。

いいねを押す +0
黄舟

オプティミスティックロック オプティミスティックロック オプティミスティックロック

いいねを押す +0
给我你的怀抱

オプティミスティックロックメカニズムは、データにバージョンフィールドを追加することで実装されます

いいねを押す +0
大家讲道理

データテーブルにフィールドを追加しますupdate_at类型为TIMESATMP,默认值为CURRENT_TIMESTAMP、他のフィールドを変更する必要はありません
データが更新されるたびに、値は自動的に更新されます

いいねを押す +0
女神的闺蜜爱上我

このデータにバージョン フィールドを追加します。バージョン番号はデフォルトで 0 から始まり、変更されない場合は、このバージョンが送信されるたびにデータベース内のバージョンと一致するかどうかを確認します。

いいねを押す +0
为情所困

バージョン番号フィールドを xxx テーブルに追加します

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート