アクセス数をもとに人気の記事を取得するには
勉強のためrails
+mysql
でブログを作っています。
人気の記事一覧というものを表示したいのですが、設計についてアドバイスください。
機能
ログを元に
- 日毎
- 週ごと
- 月ごと
- 年ごと
- トータル
の人気記事をランキング化して取得
ログの取り方
アクセスがあるたびにログ用のテーブルに保存
= 気になること・わからないこと =
単純にアクセスがあるたびに記録してしまうと、同じユーザがリロードするだけで人気記事になってしまうので、対策をとりたい。
ログの保存の仕方
ログ用のテーブルを作って、アクセスログとして記録。
= 気になること・わからないこと =
どの程度の規模まで耐えられるか。
1アクセスごとに1データ挿入されるので、肥大化した際の影響がきになる。
もっと適した方法はないか。
集計の仕方
上記のログを元に、指定した期間のログの中でもっともログの多かった記事を計算。
= 気になること・わからないこと =
過去のランキングは再計算する必要がないので、計算結果を記録するべきか。
その際に気をつけることはあるか。
ログ用のテーブル設計
- id
- post_id
- created_at
以上です。
未熟な部分があると思いますが、アドバイスいただけないでしょうか。