【发布时间】:2012-03-30 07:49:03
【问题描述】:
我正在开发一个电子商务网站,其中包含大约 2000-3000 种产品(在不久的将来可能会增加)。所以我需要计算特定产品的总页面浏览量。
我知道这可以简单地通过在每次页面加载时更新一个 mysql 表来完成,但这不是正确的方法,因为有人再次按下重新加载按钮,页面浏览量就会上升。
所以我想以更好的方式做到这一点,所以总浏览量没有。有点接近独特/真实的。
我刚刚想出了一个想法,我可以通过 3 种方式做到这一点:\
1.使用 cookie 因此,如果我只是为每个产品存储 cookie,然后检查它以进行下一次唯一访问,那么它可以完成,但我认为这不是更好的方法,因为如果没有总 cookie 的增长,那么它将影响我在每个页面请求上的页面性能。
2.使用会话我可以使用会话来存储有关每个产品和访问者身份的数据,以便我可以跟踪它是唯一访问还是重复访问。但我认为会话数据大小也如果用户使用相同的会话访问更多和更多的产品,则增加。 那么使用 session 来达到这个目的好不好?
3.使用数据库我可以创建一个表page_views,然后通过检查上次访问之间的时间延迟并匹配IP地址和会话ID来更新计数数据。
所以请建议我使用哪种方法更好以及实现该方法的最佳方式。
我正在使用 PHP(Codeigniter 2.0.1)+Mysql
【问题讨论】:
-
我会使用 cookie 以获得最准确的结果
-
猜你只能依靠 IP + 时间延迟并将信息存储在 DB 上。对于我的电子商务网站,我使用这种方法。与 cookie 控制混合使用会很好,只是不要使用持久性 cookie ^^。但是,如果最终用户禁用了 cookie 怎么办?还是带有没有cookie管理的手机?如果项目很大,你可以查看谷歌的分析。
-
难道不应该有一种巧妙的方法来做到这一点,例如 Google Analytics?
-
@danneth:你已经预料到我的编辑了,我现在也在考虑同样的事情。
标签: php mysql algorithm codeigniter