您的位置:首页 > 数据库

如何实现“浏览过该页面的人还浏览过...”功能(数据库版)

2011-12-14 15:51 281 查看

思路:先查出该商品有哪些人(IP),然后把这些人(IP)浏览过的商品进行分组统计,把前n个(建议10个以下)的商品列出来。


实现例子

新增1个浏览日志表:

浏览日志表VisitLog
用户IDPlayerID
访问模块IDModelID
访问时间VisitTime
数据库很简单,难度主要在根据数据库内的记录计算出“浏览此商品的顾客还浏览”的列表!

以下给出语句并做详细解释。
查询出模块的ID,模块的访问次数 :

select ModelID ,count(*) as thenum  from


--from(查询出所有用户id包含在(查询出所有访问过模块abc的用户id)的记录
--from后的括号内语句得到的结果就是查出来所有访问过模块abc的用户,还访问过那些模块。

完整SQL语句:

(select * from VisitLog where PlayerID in (select PlayerID from VisitLog where ModelID='abc'))
--以模块ID分组
group by ModelID
--根据模块的访问次数降序排列
order by thenum desc


通过数据库进行统计,当浏览记录量多的时候,实时查询浏览过的商品会影响性能。建议做优化处理,如可以定期对各商品进行“浏览过...”统计,或使用定时缓存(推荐)。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐