论坛首页 Java版 企业应用

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

浏览 5894 次
精华帖 (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版 企业应用

跳转论坛:
JavaEye推荐