当前位置:  开发笔记 > 后端 > 正文

总计应该非规范化吗?

如何解决《总计应该非规范化吗?》经验,为你挑选了1个好方法。

我正在一个带有简单规范化数据库的网站上工作.

有一个名为Pages的表和一个名为Views的表.每次查看页面时,该视图的唯一记录都会记录在"视图"表中.

在网站上显示页面时,我使用简单的MySQL COUNT()来总计显示的视图数量.

数据库设计看起来很好,除了这个问题:我对如何在数千个页面中检索前10个最常查看的页面感到茫然.

我应该通过添加Pages.views列来对页面表进行非规范化,以保存每个页面的总观看次数吗?或者是否有一种有效的方法来查询前10个最常查看的页面?



1> cdonner..:
   SELECT p.pageid, count(*) as viewcount FROM 
   pages p
   inner join views v on p.pageid = v.pageid
   group by p.pageid
   order by count(*) desc   
   LIMIT 10 OFFSET 0;

我不能测试这个,但是沿着这些方向.我不会存储该值,除非我必须由于性能限制(我刚学会了术语"过早优化",如果你这样做,它似乎适用).

推荐阅读
女女的家_747
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有