これはデータ共有に関する一般的な問題です。共有データ間の衝突
私は自分のメーリングリストを同僚と共有できるシステムを構築しています。
私はユーザAが同じページを開いて編集するにそのユーザーの後にデータをデータ、 を編集して提出し、ユーザーBの変更はキャンセルとなりますUSERBページ、 を開き、問題があると思います。
私はPHPを使用しているので、このようなエラーを防ぐ方法はありますか?ありがとう。
php/jqueryで提供されているコーディング例はありますか?ありがとうございます
これはデータ共有に関する一般的な問題です。共有データ間の衝突
私は自分のメーリングリストを同僚と共有できるシステムを構築しています。
私はユーザAが同じページを開いて編集するにそのユーザーの後にデータをデータ、 を編集して提出し、ユーザーBの変更はキャンセルとなりますUSERBページ、 を開き、問題があると思います。
私はPHPを使用しているので、このようなエラーを防ぐ方法はありますか?ありがとう。
php/jqueryで提供されているコーディング例はありますか?ありがとうございます
エディションログを作成するので、ユーザーAはconent verを更新します。 123からverへ。 124、ユーザーBもverを更新しようとします。 123自分のやり方では、サーバー上には既にバージョンがあります。 124と表示されるので、そのコンテンツは最近別のユーザーによって変更されたというメッセージをユーザーBに表示します。
このプリンシペは、たとえばSVNで使用されます。
いくつかの解決策があります。 最も単純なのは、誰かがページを見ているときにtrueに設定され、ロックされている間に誰かがそのページに入ることを拒否するデータベースに「ロック」フィールドを持つことです。これはいい考えではありません。なぜなら、誰かがページを離れたときに取得するのが難しいため、ページは永遠にロックされたままになる可能性があるからです。
この問題を回避するには、サーバーにメッセージを送信して10秒ごとにページをロックする小さなAJAX呼び出しを使用します。ページロックには30秒の制限があります。
おそらく最良の方法は、(これはシステムに依存するが)、彼らが別のユーザーによって編集されたときに動的にページのコンポーネントを再ロードするためにAJAXを使用する(と彼らはが編集されているときにそれらの隣にメッセージを置くことです)、同時に両方のユーザーが同じフィールドを編集している場合に警告します。
の私のシステムでは私はwikiレベルのように実装する必要はないと思うので、例を作るのは難しいですか?それはフィールドが少ないメールリストに過ぎないからです。 – user782104
ウィキペディア(および他のウィキ)もこの方法で動作します。しかし、合併は難しいかもしれません。 –
php/jqueryで提供されているコーディング例はありますか?ありがとうたくさん – user782104
データモデルへの変更とコード – SergeS