1

gmail のラベルに似たアプリケーション機能があり、アイテムに「タグ付け」できます。現在、これは並行アプリケーションです。つまり、いわゆる「ホワイトボード」は複数のユーザーが編集できます。つまり、多くのユーザーが項目を再グループ化することを選択できます。基本的に複数のアイテムを同時にタグ付けします。

間違いなく競合が発生しますが、問題はそれをどのように処理するのが最善かということです。心に浮かぶ唯一の戦略は、有名な ALOHA プロトコルに似ています。つまり、何かが変更されたかどうかをコミットする前にチェックします。変更されている場合は、中止してユーザーに通知します。そうでなければコミットします。これは非常に非効率的な IMO です。

以下に 2 つの類似したアイデアを示します。比較すると、一方は難しく、他方は簡単です。

最初は簡単です:)-変更を上書きします。つまり、重複は更新されるだけですが、新しいものもタグ付けされます。

難しいもの: どれが「削除」されるかを確認します。つまり、分類に属さないものがある可能性があります (ユーザー 2 によると言う. つまり、ユーザー 1 が変更を行い、ユーザー 2 も同時に変更を行った.基本的に、タグ付けされたアイテムのセット {user1 - user2} を見つけます)。これは非常に難しく、努力する価値はありません。

このような場合に、ユーザー エクスペリエンスを妨げず、混乱させないベスト プラクティス ソリューションは何かと考えていました。

(これは、MySQL バックエンドと Jquery/ajax フロントエンドを備えた J2EE/Restlet アプリです)

4

1 に答える 1

2

この質問への答えは、実際にはユーザーが誰であるか、そしてユーザーが何を期待しているかによって異なります。私の場合、私の作業が完了する前にユーザーが変更を作成していることを通知され(stackoverflowがこれを行います)、とにかく変更をコミットしたり、ロールバックしたりできるようになると思います。あなたが提示したすべての解決策は受け入れられるようです..それは純粋にあなたが何をしたいかに依存します。でこれを行う方法を尋ねている場合はcode、最初にコードを投稿して、何を扱っているかを確認できるようにする必要があります。

別の可能な解決策は#2に似ていますが(変更が発生したときに上書きするだけです)、各変更のリビジョンを保持して、簡単に元に戻せるようにし、変更が他の変更の上に行われたかどうかを簡単に見分けられるようにします。

于 2012-01-05T07:03:45.560 に答える