gpt4 book ai didi

php - 人气算法

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:24:43 25 4
gpt4 key购买 nike

我正在制作一个类似于 digg 的网站,该网站将拥有一个包含不同类别的主页。我想显示最受欢迎的提交。

我们的评级系统只是“喜欢”,例如“我喜欢这个”等等。我们基本上想显示每次“喜欢”次数最多的提交。我们想要三个类别:历史流行度、上周和最后一天。

有人知道帮助的方法吗?我不知道如何着手做这件事并使其高效。我认为我们可以使用某种 cron-job 每 10 分钟运行一次,并在最后 10 分钟内提取点赞数……但有人告诉我这样效率很低?

帮忙吗?

谢谢!

最佳答案

通常 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;

从这里开始,您只需跳跃、跳过和内部连接,即可将帖子数据绑定(bind)到返回的 ID。

关于php - 人气算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1025436/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com