2012-03-28 64 views
1

我在网站上看到他们有时会有一个统计数据,显示上周有多少文章或下载文件的视图。我认为download.com做了这样的事情。我想知道他们如何去做这件事。他们是否真的在跟踪每一天的下载量还是我错过了一些非常基本的东西?上周如何生成文章视图的统计信息

他们是否做了像有三行称为total_downloads,last_week_downloads,this_week_downloads。然后每周将this_week_downloads的值复制到last_week_downloads,然后将this_week_downloads重置为0?

回答

1

有几个方法可以做到这一点,取决于你试图走出的统计数据。

一种方法是在表格中包含visits列,然后在每次加载文章页面时将该数字加1。 但是这对于给出过去几周的观点并不是很好。你可以用两种方法做到这一点:

1)表中的另一列与visits相同,但每周运行一次cron作业以使其恢复为0。

2)创建持有article_idip_addresstimestamp另一个表,你会插入一条记录,每次有人访问的文章,保存自己的IP地址(允许您粗略获得页面浏览和独特页面浏览),当然时间戳允许您仅查询这些记录的子集。注意:使用这种方法可以存储更多的统计信息,但它确实需要更多的服务器资源。

+0

感谢您的信息。我认为我最好添加列并根据需要进行旋转,以避免使服务器密集化。 – 2012-03-29 16:24:29

+0

@John Tangale一个MySQL数据可以节省少数客户在网站上的每一次点击而不会出汗。只要确保你的表是非阻塞的,并且你使用'DELAYED'或'LOW_PRIORITY'这样的东西来确保,在繁重的压力下你的日志不会影响服务器。 – Frankie 2012-03-29 18:05:42

0

,你可以做到这一点的最基本的方法是联想一个MySQL场你旁边的数据库上的文章,只是增加它

假设你我们从你的数据库retreiving第123条你有这样的事情在你的代码:

<?php 
// this would increment the number of views 
$sql = "UPDATE table SET count_field=count_field+1 WHERE id=123"; 
... 
?> 
+0

对......这就是我要做的全部观点,但不是前几周的观点。 – 2012-03-28 15:02:27

+0

@Janhn Tangale看看Nick的回答。根据您想要保存的数据量,您只需保留一个计数器并每周轮换一次,或者将所有匹配保存在特定的表格中,然后根据您的站点容量直接从那里提取数据或预先缓存数据一个cron工作......无论适合你。你的逻辑是正确的。 – Frankie 2012-03-28 17:53:23

相关问题