ホームページ  >  に質問  >  本文

php - データベースはデータが変更されたかどうかをどのように判断しますか?

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

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

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

大家讲道理大家讲道理2684日前1567

全員に返信(7)返信します

  • typecho

    typecho2017-07-07 10:37:07

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

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

    返事
    0
  • 伊谢尔伦

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

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

    返事
    0
  • 黄舟

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

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

    返事
    0
  • 给我你的怀抱

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

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

    返事
    0
  • 大家讲道理

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

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

    返事
    0
  • 女神的闺蜜爱上我

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

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

    返事
    0
  • 为情所困

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

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

    返事
    0
  • キャンセル返事