我将为一个网站构建一个页面计数器来确定不同页面的视图。基本上,我有用户,我想跟踪关于大约120个特定页面的页面浏览量。
我在确定最有效的方法以及它背后的逻辑时遇到了麻烦。我尝试了3个表,但这将导致许多不必要的行。我想在单个字段中存储数组,然后更新数组,但我不确定这是否会增长,甚至不确定它是否可能。下面是我限制请求数量的方法。基本上每100个就会有100个。对此有什么想法吗?
$sample_rate = 100;
if(mt_rand(1,$sample_rate) == 1) {
//update set query
}
发布于 2015-07-09 05:48:01
基于我们在评论中的对话,我推荐以下简单的设计:
TblPages
--------
Page_Id (pk)
Page_URL (unique)
TblViews
--------
View_Page_Id
View_User_Id
View_Count
(pk is View_Page_Id + View_User_Id)
每当用户查看页面时,您都会执行一个存储过程,该存储过程将在该用户和页面没有记录的情况下向TblViews表中插入一条记录,或者更新现有记录的View_Count。
要获得一个页面的所有浏览量,可以使用SUM(View_Count)和group by View_Page_Id,要获得某个用户的所有页面浏览量,请按View_User_Id分组,等等。
https://stackoverflow.com/questions/31299266
复制相似问题