zoukankan      html  css  js  c++  java
  • 如何实现“浏览过该页面的人还浏览过...”功能(数据库版)

    思路:先查出该商品有哪些人(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


    通过数据库进行统计,当浏览记录量多的时候,实时查询浏览过的商品会影响性能。建议做优化处理,如可以定期对各商品进行“浏览过...”统计,或使用定时缓存(推荐)。

  • 相关阅读:
    coder的脚印
    Mysql
    MSDos
    Windows Develop
    Eclipse 使用总结
    DBA常用SQL
    SSH总结
    Unity3D协程
    yield的作用
    UGUI优化
  • 原文地址:https://www.cnblogs.com/ibook360/p/2287685.html
Copyright © 2011-2022 走看看