首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >记录用户页面浏览量,然后将其转化为有用的数据?

记录用户页面浏览量,然后将其转化为有用的数据?
EN

Stack Overflow用户
提问于 2009-10-22 16:29:40
回答 2查看 139关注 0票数 2

每当用户查看文章时,我的网站都会记录对数据库的单击。这张桌子每3天自动清除一次。我们使用这些数据计算出3天内浏览次数最多的页面。

我也想使用这些数据的营销目的,例如,确定哪些用户喜欢哪个部分的网站。

我用php编写了一个脚本,它做了以下工作:

  • 获取在过去3天中查看文章的任何登录成员的用户ID。
  • 对于每个用户,我会询问他们在每一节中浏览文章的次数,例如,鲍比在“食物与饮料”中浏览了10页,在“体育”中浏览了6页。我试着把这一步和前一步结合在一起,但总结果却很奇怪。
  • 这给了我一个很好的数组,以这种形式: 鲍比琼斯=>阵列(电影=> 10主页=> 1食品饮料=> 2健康美容=> 1礼品及小工具=> 3)

从这些数据中我需要的是最终有一个表来记录上面的数组中的数据,然后当我运行我的查询时,增加它。

不幸的是,这增加了大量的开销。当我有像上面这样的数组时,我必须运行另一个查询来检查数据库中是否已经存在用户和类别的组合,如果已经存在,我必须按照当天的值来增加它。如果鲍比上周看了10页电影,本周看了6页,我需要更新一下表格。如果他以前从来没有看过食物页面,我需要插入。

此查询将返回在过去3天内与站点交互的大约400名用户。这意味着,对于每个i用户,我必须执行1次查询才能获得他们的浏览总数,1次查询以查看他们是否已经浏览过该类别,以及另一项要更新/插入的查询,这取决于他们是否浏览过该类别。你可以看到这是多么的低效。

有人能提出更好的方法吗?我的最终目标是得到一张表格,显示我的用户浏览我的分类的频率,所以我可以说“告诉我所有喜欢吃和喝的用户”等等。

谢谢,马特

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-10-22 16:34:53

您可以使用MySQL的INSERT...ON DUPLICATE KEY UPDATE完成更新/插入行为。

您可以使用MySQL的INSERT...SELECT组合选择和插入查询。

如果您发布更多细节(例如,模式),我可以向您展示结合这两种技术的示例查询,尽管MySQL手册对这两个主题都非常深入。

票数 1
EN

Stack Overflow用户

发布于 2009-10-22 16:36:50

如果您使用的是MySQL,并且版本足够高,请查看插入..。关于重复密钥更新。这应该会减少查询。

然后确保您的表是正确的键,这两个查询应该是轻而易举的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1608423

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档