实现的内容:产品人气排名的数据库设计
数据库:mysql
排序内容:本周人气,本周推荐
相关参照:oracle sequence
就是想实现某个产品被点击的更多的排序。
oracle sequence就可以实现检索一次,序列+1,
但mysql没有sequence功能。
如果用mysql的Auto Increment(自动+1)做标记的话,
我要每检索一次,要更新一次数据库。
这样觉得比较笨且麻烦。想问问大家有什么好办法没有?
多谢指教。

解决方案 »

  1.   

    oracle的sequence,其实就是类似mysql的Auto Increment。一般在触发器或程序里面调用sequence_name.nextval来获取下一个值,这个跟你这里面累计产品的点击数不相符合吧? 
    应该有个字段total或有个表进行产品的点击数累加,然后对total进行降序排序就能找到热门的啦
      

  2.   

    在MySQL中没什么好办法,你只能去更新数据库了。不过一般是设计一张访问日志表 (来源IP,访问时间,访问URL,。。)
    然后直接根据这具表进行统计分析。
      

  3.   

    楼上的兄弟,刚才查过,触发器的触发事件只有insert|update|delete
    检索的时候还触发不了,这种情况怎么办??
      

  4.   

    或者一种方法
    你可以模拟这个oracle sequence 比如 mySeq.NextVal你可在mysql 中新建一个 create database mySeq , 然后在其中写个函数 nextval() 在这个函数中对你自己的某张表进行更新 update mySeqTbl set seq=seq+1; 并返回这个 mySeqTbl.seq