论坛首页 Java企业应用论坛

商品无限分类的算法如何优化?

浏览 18091 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-03-13  
    现在做一个系统,里面涉及到了信息的无限分类,以前也做过(一次数据库取出所有记录返回一个list 递归循环调用list来分组显示所有信息的归属关系),于是就拿过来用,后来发现信息显示页面超慢,有时要等上几分钟还不能完全显示,问题来了,客户不满意,在这里想请教下大家,有没更好的实现方法,下面是我的数据表结构:

类别表: type
字段:     id          标识(自动增长)
         code       分类级别
           typename    分类名称

(code表示方法:
一级目录 : 1,
一级目录第一个子栏目: 1_1,
一级目录第二个子栏目: 1_2,
一级目录第一个子栏目的第一个栏目: 1_1_1,
以此类推...)

信息表: msg
字段:  id
       typeid       类别ID(对应type表id)
       title       标题
       messge      内容
   发表时间:2008-03-13  
信息分类属于读大于写的东西,用缓存如何?客户端可以指定超过N级的分类按需从服务器往过拉......一点愚见
0 请登录后投票
   发表时间:2008-03-13  
armorking 写道
MS对code做字典序排序就能解决问题的样子


嗯,行了,现在我在SQL后加了个 group by code 实现 了,再不用递归来显示了...
0 请登录后投票
   发表时间:2008-03-13  
现在做一个系统,里面涉及到了信息的无限分类,以前也做过(一次数据库取出所有记录返回一个list 递归循环调用list来分组显示所有信息的归属关系),于是就拿过来用,后来发现信息显示页面超慢,有时要等上几分钟还不能完全显示,问题来了,客户不满意,
---------------------------------------
你的页面没有死掉,你应该很高兴了。
0 请登录后投票
   发表时间:2008-03-13  
gaoran2008 写道
现在做一个系统,里面涉及到了信息的无限分类,以前也做过(一次数据库取出所有记录返回一个list 递归循环调用list来分组显示所有信息的归属关系),于是就拿过来用,后来发现信息显示页面超慢,有时要等上几分钟还不能完全显示,问题来了,客户不满意,
---------------------------------------
你的页面没有死掉,你应该很高兴了。


现在数据还不是很多,以后可能会有更多问题,楼上的有更好的解决办法吗?
0 请登录后投票
   发表时间:2008-03-13  
这个东西其实从数据库那层去设计可能在实现上会轻松些。
加个上级菜单代码,再加一个显示序号及一些是否显示的标识字段,一条语句即可实现。
0 请登录后投票
   发表时间:2008-03-13  
现在数据还不是很多,以后可能会有更多问题,楼上的有更好的解决办法吗?
-----------------------------------------------------------
呵呵,这就看你的个人的想法了。
我的思路是:
如果用内存来缓存的对内存的要求高,到硬盘也不是很好的方法。我要是来做的话就话把利用的分页的思路,一次在屏幕上显示如100条,当用户往下拖动右边的滚动条的,在去数据库取出下面的数据。这样的话不管数据有多少,也不会死掉,而且用户会认为你是一次全部显示数据的。
0 请登录后投票
   发表时间:2008-03-13  
晕,这不就是一个级联菜单吗?网上找找很多啊.
0 请登录后投票
   发表时间:2008-03-13  
树形结构要么用 Oracle的connect by,
要么就要用一些数据结构了.一个可以的选择
就是  nested set -> http://dev.mysql.com/tech-resources/articles/hierarchical-data.html.
但是这种方法更新的效率很低,要是数据不是很敏感的话,
上缓存还是个不错的办法.
0 请登录后投票
   发表时间:2008-03-14  
关于这样的树加载, 都是一级一级加载。效率高点把。。。
    一次递归,数据量大的话,基本要死掉。。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics