通常、Digg や Reddit のようなサイトは、投票の時間ではなく、提出日までに更新されます。このように、単純な SQL クエリを実行するだけで、X 期間の上位の送信を見つけることができます。このメソッドを使用して、過去 24 時間で最も人気のある 10 個のリンクを検索する疑似クエリを次に示します。
select * from submissions
where (current_time - post_time) < 86400
order by score desc limit 10
基本的に、このクエリは、現在から投稿された時刻までの秒数が 86400 (UNIX 時間で 24 時間) 未満であるすべての送信を検索するように指示します。
X 時間間隔内で人気を本当に測定したい場合は、別のテーブルにすべての投票の投稿と時間を保存する必要があります。
create table votes (
post foreign key references submissions(id),
time datetime,
vote integer); -- +1 for upvote, -1 for downvote
次に、次のように X 回と Y 回の間で最も人気のある投稿のリストを生成できます。
select sum(vote), post from votes
where X < time and time < Y
group by post
order by sum(vote) desc limit 10;
ここからは、返された ID に関連付けられた投稿データを取得することから離れて、ホップ、スキップ、内部結合を行うだけです。