非常に単純なポイント システムをサイトに追加しようとしています。私の SQL データベースには、ポイントを付与するための表があります。これは、管理者がユーザーのポイントを任意の量だけ増やすことができ、ポイントが増える理由も示しているためです。したがって、少し単純化すると、この表には、管理者がポイントを付与するたびに付与されるポイント数、根拠、およびユーザー ID が含まれます。ここまでは順調ですね。
ただし、最高の合計ポイントを競うサイトには 10 のユーザー グループがあります。サイトのメンバーはすでに 10,000 人を超えているため、1 つのユーザーグループのポイント数は簡単に合計 15,000 に達する可能性があります (確かに、ほとんどが非アクティブです)。競合するユーザーグループとその合計スコアを表示するリーダーボードを作成したいのですが、システムを実装する際に毎回ポイントを合計するのに時間がかかりすぎるのではないかと心配しています。質問は次のとおりです。ポイントの集計をデータベースに保存する必要がある場合は、どのレベルで保存する必要がありますか? ユーザーごとの合計ポイントのフィールドをユーザー テーブルに用意し、その場でそれらを合計して、ユーザー グループのランキングに使用する必要がありますか? それとも、ポイントが 1 人のユーザーに追加されるたびに更新するユーザー グループごとに集計フィールドを用意する必要がありますか? 実際にシステムを実装する前に、