平台:PHP5,MySQL
我有一个网站,显示按类别排序的文章。我想跟踪每篇文章的观看次数。然后,在侧栏中,显示前5个文章,查看当天,过去的温柔和上个月内的文章。您认为最好的方法是什么?每个视图的数据库中有一行(article_id,timestamp)?什么是最少的服务器工作量?
谢谢,乔
答案 0 :(得分:2)
这可能会成为一个棘手的问题。如果您只是存储原始命中,您的表将快速增长并且数字处理会变得更加耗时。因此,解决这个问题的一种方法是使用cron作业创建聚合表并处理数字。
例如,您可以使用以下表格
然后,您可以处理hit_count表中的数据,将其添加到聚合表中,然后从hit_count表中删除数据。
如果有人刷新页面或Google抓取文章,您还需要考虑会发生什么。你想把它们算作命中吗?
为了防止抓取工具触发点击,您可以使用页面上的一些Javascript与您的服务器进行通信并注册匹配。这样,普通浏览器将触发命中,但爬虫不会。
答案 1 :(得分:0)
怎么样:
将此添加到php.ini
auto_append_file = /server_root/footer.php
footer.php包含一个编写SQL数据的静默例程。