もちろん結果を表示する必要があるテニスサイトを作成しています。現在、ランキングを取得するには、1 人のプレーヤーの結果のみが必要な場合でも、各プレーヤーのスコアを合計して並べ替える必要があります。システムのプレイヤー数が増えると本当に遅くなると思います。そのため、結果をキャッシュし、何かが変更された場合にのみ更新する方法が必要です (または、結果を更新する必要がある場合に何らかのタイムアウトを追加します)。
また、その他の要件として、合計スコアを計算できる必要があります。つまり、いくつかの大会があり、すべての大会のスコアと、各大会のスコアを個別に表示する必要があります。
私が現在考えているのは、すべてを格納する単一のテーブルです。そのスキーマは次のようになります。
ranking_tbl シーマ
rank_type (競技、チーム、選手など)
rank_owner (誰がそれらのランクを所有しているか、チーム プレーヤーのランクになることができます - 所有者はチームになります)
rank_item (誰がランク付けされているか、チームの例では player )
スコア(ランク付けする実際のスコア)
ランク(事前にキャッシュされたランク、新しいスコアが追加された場合にのみ更新)
ランキングは私のシステムの重要な部分であり、頻繁に使用されるため、できるだけ効率的にする必要があります。
質問:テーブル スキーマを使用するよりもランキングを達成するための良い方法はありますか?