php – 跟踪页面查看并显示每日,每周,每月结果

平台:
PHP5,MySQL

我有一个网站,显示按类别分类的文章.我想跟踪每篇文章的观看次数.然后,在侧栏中,显示前5个文章,查看当天,过去的温柔和上个月内的文章.您认为最好的方法是什么?每个视图的数据库中有一行(article_id,timestamp)?什么是最少的服务器工作量?

谢谢,乔

最佳答案 这可能成为一个棘手的问题.如果您只是存储原始命中,您的表将快速增长并且数字处理会变得更加耗时.因此,解决这个问题的一种方法是使用cron作业创建聚合表并处理数字.

例如,您可以拥有以下表格

> hit_count:article_id,timestamp
> hit_count_daily:day,year,article_id,hit_count
> hit_count_weekly:week,year,article_id,hit_count
> hit_count_monthly:month,year,article_id,hit_count
> hit_count_yearly:year,article_id,hit_count

然后,您可以处理hit_count表中的数据,将其添加到聚合表,然后从hit_count表中删除数据.

您还需要考虑如果有人刷新页面或Google抓取文章会发生什么.你想把它们算作命中吗?

为了防止抓取工具触发命中,您可以使用页面上的一些Javascript与服务器进行通信并注册命中.这样,普通浏览器将触发命中,但爬虫不会.

您还可以将此任务卸载到另一个服务,如ChartbeatClicky

点赞