1

私はFacebookのようなアプリケーションを持っています-そのプロジェクトに共通の「壁」を共有する複数の「チーム」のための仮想ホワイトボード。私がデータをキャプチャするエンティティは約9〜12個あります。過去のログイン以降に発生したアクティビティの更新をユーザーのホームページに表示させようとしています-Facebookが通知を投稿する方法のように:

「[ユーザー]は[一部のエンティティ]に対して[一部のアクティビティ]を実行しました-20分前」

ここで、[...]はクリック可能なリンクであり、アクティビティは主に(むしろ)CRUDです。

これらの更新を永続化する必要があります。私はバックエンドDBとしてMySQLを使用しており、プロジェクトごとにアクティビティを保存できる更新テーブルを用意することを考えました。ただし、テーブルごとに1つのトリガーが必要であり、それは冗長になるだけのようです。さらに、さまざまなエンティティが存在するため、その更新テーブルの表形式のスキーマを特定することは困難です。

制約はMySQLを使用することですが、私はこの機能を実現するための「方法」の他のオプションを受け入れています。

何か案は?

PS:jQuery + REST + Restlet + Glassfish + MySQL+Javaを使用する

4

1 に答える 1

0

データベースレベルで処理する必要はありません。各操作で呼び出すトランザクションログサービスを使用できます。各トランザクションは(一意のシーケンシャル)キーを取得します。

その人が最後に見たアイテムのキーを保存し、キーが高い方の更新を表示します。最後に見たキーを更新します。

定期的なルーチンは、ユーザーアカウントを調べて、すべてのユーザーの中で最も低く表示されたトランザクションログキー(つまり、すべてのユーザーがすでに表示した最新のログエントリ)を確認し、キー<=のエントリを削除/アーカイブできます。 。

于 2011-02-09T05:46:40.627 に答える