質問: ユーザーが獲得したポイントでランキング機能を作りたいのですが、できるだけDBへの負荷を少なくさせたいです。 そこで質問なのですが、下記の仕様を満たすためにはどのようなモデル/テーブル設計をすればいいでしょうか? **【仕様に関して】** 1日、週、月のポイントに応じたユーザーランキング ※日は1/1に獲得したポイントでのランキング、週は1/1〜7日間に獲得したポイントでのランキングです。 2ユーザーのマイページでteratailのような日毎のポイントの確認、順位の確認ができる ユーザーの日毎のポイント、順位の管理に関してどのようなモデル/テーブル設計をするのがいいのか教えてください。
回答: ランキングはいずれも「1日以上」の単位なので、毎回計算するのではなくて、未明にでも一度計算してキャッシュしておけば、もとのデータ構造はあまり考えなくて問題ない気がします。