2

私は数か月前にプロジェクトに取り組んでおり、表彰システムを実装する必要がありました。StackOverflow のバッジ システムに似ています。バッジ

私は可能な限り最善の方法でそれを実装していなかったかもしれません.


バッジの授与に必要な、ユーザー アクティビティを追跡する良い方法は何でしょうか?

Stackoverflow のシステムは多くの情報を知る必要があり、データ処理が複雑になるという印象も受けます。

SO は 24 ごとに 1 回か 2 回バッジを計算し、おそらくログが保存されているか、バッジ計算専用のサーバーを使用していると思います。


考え?

4

2 に答える 2

2

あなたが思っているほど複雑ではないと思います。SO がある種のユーザー アクティビティ ログを使用してバッジを計算することは非常に疑わしいです (ただし、技術的にはデータベース全体がユーザー アクティビティ ログです)。バッジのリストを見ると、SQL 選択クエリを実行して実装できないものは何もありません。

一部のクエリは非常に複雑で、ある種の派手なキャッシュ メカニズムが存在する可能性がありますが、バッチでバッジを計算する必要がある理由はわかりません。

于 2010-03-24T18:48:27.183 に答える
0

一般に、バッジ/ポイント システムは 2 つのことに基づいています。

  • 興味深いイベントのアクティビティ ログ。これは事実上、必要に応じてゼロから再計算できるように、何が起こったかを紙に記録した領収書です。(user_id、timestamp、event_id、event_detail) のように単純にすることができます

  • ほとんどの場合、スコアリング/ポイント システムを事前に設計して、ユーザーに保持するカウンターを正確に把握しています。今では、すべての詳細を含む大きなレコードを作成するのと同じくらい簡単です。(user_id、reply_points、login_points、last_login、thumbs_up_points など)

これで、そのモデル オブジェクトにいくつかの単純なメソッドを平手打ちし、必要に応じてポイントを管理/保存することができます。

于 2010-03-25T15:24:42.240 に答える