我正在开发一个电子商务网站,其中包含大约2000-3000种产品(不会在不久的将来增加)。所以我需要计算特定产品的总页面浏览量。
我知道可以通过在每个页面加载时更新mysql表来简单地完成,但这不是正确的方法,因为有些人只是再次按下重新加载按钮并且页面视图会上升。
所以我想以更好的方式做到这一点所以总观点没有。有点接近独特/真实的。
我想出了一个想法,我可以用3种方式做到:\
1.使用cookies 所以,如果我只为每个产品存储cookie,然后检查它以进行下一次独特的访问,那么它可以完成,但我认为这不是更好的方法,因为如果没有总cookie增长然后它将影响我的页面性能在每个页面请求。
2.使用会话我可以使用会话来存储有关每个产品和访客身份的数据,以便我可以跟踪这是一次独特的访问还是重复访问。但我认为会话数据大小也是如果用户访问更多&更多具有相同会话的产品。 那么为此目的使用会话是否好?
3.使用数据库我可以创建一个表page_views
,然后通过检查上次访问之间的时间延迟以及匹配IP地址和会话ID来更新计数数据。
所以请告诉我哪种方法更好用,以及实现该方法的最佳方法。
我正在使用 PHP(Codeigniter 2.0.1)+ Mysql
答案 0 :(得分:2)
我建议您创建一个新表来存储会话ID变量,以及过期时间为2小时。您可以在客户端服务器上创建具有此ID的cookie,这样您就不必重复使用MySQL查询。
在我的Intranet中,我只在web-hits表中创建了一个last_visitor_ip
列,我在那里存储了最后一个IP,因此不计算连续刷新。 :)
答案 1 :(得分:1)
没有。 3不是一个好主意,因为通常许多不同的用户可能看起来具有相同的IP地址(例如,如果他们来自大型组织)。我想不是。 1/2是最好的方法(我将它们视为相同的解决方案,因为您通常会通过创建cookie来实现会话)。但为什么要为每个页面创建一个cookie?只需跟踪每个Cookie /会话的不同产品/网页浏览量。