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

时间:2011-10-22 15:12:01

标签: php mysql views

平台:PHP5,MySQL

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

谢谢,乔

2 个答案:

答案 0 :(得分:2)

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

例如,您可以使用以下表格

  • hit_count: article_id,timestamp
  • hit_count_daily: day,year,article_id,hit_count
  • hit_count_weekly:周,年,article_id,hit_count
  • hit_count_monthly: month,year,article_id,hit_count
  • hit_count_yearly:年,article_id,hit_count

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

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

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

您还可以将此任务卸载到其他服务,例如ChartbeatClicky

答案 1 :(得分:0)

怎么样:

将此添加到php.ini

auto_append_file = /server_root/footer.php

footer.php包含一个编写SQL数据的静默例程。