通常,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相关.