• 締切済み

ランクの順位変動について

こんにちは。 PHP+Postgresで 各コンテンツのリンクをクリックすると DBのテーブルに、その該当するレコードの値が +1されるようなスクリプトがあって、 ブラウザ上でリアルタイムに動くようにしてあるのですが、 これに先週と今週のランキングを比較して 「↑」「↓」「New」のような値を 自動で出力するにはどうしたら宜しいでしょうか? ちなみに、そのカウントテーブルには name : コンテンツ名 date : 加算した日時 count : カウント数 というフィールドが入っていて、 当日から1週間までのレコードを読み取って 順位出力されるようにしてます。 なので、日数での絞り込みによる出力は可能です。 お分かりになる方がいらっしゃいましたら 何卒ご教授くださいませ。

みんなの回答

回答No.2

>「一定期間おきに更新」 SQLで行うわけではないです。crondを使うのが一番いいかな。順位を集計して順位テーブルに書き出す処理をするシェルスクリプトを書いて、これをcrondで動かしていました。 HTMLの表示のたびに順位を集計していると重くなりますし、この順位変動も表示させる事を考えると、このような手段で1時間に1回など定期的に順位を決定していました。

回答No.1

うちで作ったランキングのシステムでは、順位テーブルを作って一定時間おきに更新するようにしていました。その時、新たな順位テーブルを作る時に前の順位との比較をして、UP/DOWNやNEWのフラグを順位テーブルに立てるようにしていました。 UP/DOWNなどの印を付ける以上、どの時点との比較をするのかを決めなければいけませんね。ですから少なくとも保存時点でのランキングは保存しておく必要はあります。

gantz77
質問者

補足

「一定期間おきに更新」と言うのは どのようにSQL文を記述すれば宜しいのでしょうか? 誠に恐縮ですが、差し支えなければで 教えて頂きたいと思います。

関連するQ&A