思路:先查出该商品有哪些人(IP),然后把这些人(IP)浏览过的商品进行分组统计,把前n个(建议10个以下)的商品列出来。
实现例子:
新增1个浏览日志表:
浏览日志表VisitLog | |
用户ID | PlayerID |
访问模块ID | ModelID |
访问时间 | 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
通过数据库进行统计,当浏览记录量多的时候,实时查询浏览过的商品会影响性能。建议做优化处理,如可以定期对各商品进行“浏览过...”统计,或使用定时缓存(推荐)。