`
javanewlife
  • 浏览: 11433 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
文章分类
社区版块
存档分类
最新评论

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

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

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

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

信息表: msg
字段:  id
       typeid       类别ID(对应type表id)
       title       标题
       messge      内容
分享到:
评论
10 楼 LucasLee 2008-03-14  
我碰巧也做过同样的东西。
树里共100-200节点;
第一次,用递归查询数据,就是每个节点一个SQL,>2分钟;
第二次,用一个SQL查出所有纪录,用java在内存里按数据关系整理出树形结构,<10秒。
(具体数字记得不是很清楚,仅供参考)
9 楼 qianlei007 2008-03-14  
关于这样的树加载, 都是一级一级加载。效率高点把。。。
    一次递归,数据量大的话,基本要死掉。。
8 楼 yujiang 2008-03-13  
树形结构要么用 Oracle的connect by,
要么就要用一些数据结构了.一个可以的选择
就是  nested set -> http://dev.mysql.com/tech-resources/articles/hierarchical-data.html.
但是这种方法更新的效率很低,要是数据不是很敏感的话,
上缓存还是个不错的办法.
7 楼 lingzantia 2008-03-13  
晕,这不就是一个级联菜单吗?网上找找很多啊.
6 楼 gaoran2008 2008-03-13  
现在数据还不是很多,以后可能会有更多问题,楼上的有更好的解决办法吗?
-----------------------------------------------------------
呵呵,这就看你的个人的想法了。
我的思路是:
如果用内存来缓存的对内存的要求高,到硬盘也不是很好的方法。我要是来做的话就话把利用的分页的思路,一次在屏幕上显示如100条,当用户往下拖动右边的滚动条的,在去数据库取出下面的数据。这样的话不管数据有多少,也不会死掉,而且用户会认为你是一次全部显示数据的。
5 楼 xiaoxiaodi5834 2008-03-13  
这个东西其实从数据库那层去设计可能在实现上会轻松些。
加个上级菜单代码,再加一个显示序号及一些是否显示的标识字段,一条语句即可实现。
4 楼 javanewlife 2008-03-13  
gaoran2008 写道
现在做一个系统,里面涉及到了信息的无限分类,以前也做过(一次数据库取出所有记录返回一个list 递归循环调用list来分组显示所有信息的归属关系),于是就拿过来用,后来发现信息显示页面超慢,有时要等上几分钟还不能完全显示,问题来了,客户不满意,
---------------------------------------
你的页面没有死掉,你应该很高兴了。


现在数据还不是很多,以后可能会有更多问题,楼上的有更好的解决办法吗?
3 楼 gaoran2008 2008-03-13  
现在做一个系统,里面涉及到了信息的无限分类,以前也做过(一次数据库取出所有记录返回一个list 递归循环调用list来分组显示所有信息的归属关系),于是就拿过来用,后来发现信息显示页面超慢,有时要等上几分钟还不能完全显示,问题来了,客户不满意,
---------------------------------------
你的页面没有死掉,你应该很高兴了。
2 楼 javanewlife 2008-03-13  
armorking 写道
MS对code做字典序排序就能解决问题的样子


嗯,行了,现在我在SQL后加了个 group by code 实现 了,再不用递归来显示了...
1 楼 。。。 2008-03-13  
信息分类属于读大于写的东西,用缓存如何?客户端可以指定超过N级的分类按需从服务器往过拉......一点愚见

相关推荐

    无限分类算法(数据结构与算法高级课程)

    在实际应用中,无限分类算法不仅应用于数据库设计、文件系统,还广泛应用于推荐系统、搜索引擎、电子商务的商品分类等领域。通过理解并掌握这些知识点,开发者能够更有效地处理和利用层级结构数据,提升系统的性能和...

    js无限级分类源码,无限分类,树型菜单,分类,

    本文将深入探讨这些概念,并结合"js无限级分类源码",即JavaScript实现的树型菜单无限分类的功能。 无限级分类是一种数据结构设计,它允许类别可以有任意多的子类,形成一个无限深度的层次结构。这种结构在实际应用...

    ASP无限级分类代码 提供无限级分类的完整演示,带数据库

    在ASP中实现无限级分类是一项常见的需求,尤其是在构建大型网站或管理系统时,如电商网站的商品分类、博客的分类目录等。这个压缩包文件"aspsort"可能包含了实现这一功能的源代码和数据库结构。 无限级分类,...

    简单无限级分类.rar

    例如,在电子商务网站中,商品分类可以无限级扩展,用户可以方便地浏览和定位商品;在论坛或博客系统中,文章分类也可以采用无限级,使内容结构更加清晰。 在实际应用中,还需要考虑性能优化,如使用缓存、预加载、...

    asp无限级分类(含数据库)

    3. **无限级分类算法**:ASP代码中的关键部分是无限级分类的实现。这可能通过递归查询或者自连接实现。递归查询每次获取一个层级的子分类,然后对每个子分类再进行查询,直到没有子分类为止。自连接则是将`Category`...

    php 无限级分类 带分类路径

    在IT行业中,数据库和数据结构的管理是至关重要的,特别是在网站开发中,如电商或博客系统,往往需要处理复杂的层级关系,例如商品分类、文章目录等。PHP作为一门广泛使用的服务器端脚本语言,提供了处理无限级分类...

    php无限分类管理与级联选单

    4. **优化无限分类的性能** 为了提高查询效率,可以使用预加载或关联查询(如Eloquent ORM的`with('children')`)一次性获取所有分类及其子分类。此外,可以使用`LEFT JOIN`查询,避免因递归导致的多次数据库访问。...

    简单无限级分类(表格、下拉列表)源码

    - **电商系统**:商品分类可无限扩展,便于用户按需浏览。 - **权限管理**:用户角色和权限可以按照无限级分类设置,实现灵活的权限分配。 5. **优化与扩展** - **性能优化**:在大量分类时,避免全量加载,可以...

    PHP无限分类的原理.

    在PHP编程中,无限分类是一种常见的数据组织方式,特别是在处理如商品分类、文章分类等具有层级关系的数据时。本文将详细解析PHP实现无限分类的原理,并通过递归的应用来阐述其实现过程。 首先,理解无限分类的核心...

    无限分类,PHP分类

    在IT行业中,无限分类是一种常见的数据组织方式,特别是在网站内容管理、电商商品分类或博客文章分类等场景下。无限分类允许我们创建一个无层级限制的分类结构,使得每个分类可以有任意多的子分类,而这些子分类也...

    php的多种无限分类库

    - 查询数据库获取分类数据,根据不同的无限分类算法进行处理,生成分类树。 - 实现函数,如`getChildren($parentId)`,用于获取指定父分类的所有子分类。 - 可以使用递归函数`buildTree($categories, $parentId =...

    mysql 无限级分类实现思路

    MySQL 实现无限级分类是一种常见的数据库设计挑战,特别是在需要构建层级结构的数据模型时,例如网站导航菜单、组织架构或商品分类。以下将详细介绍三种常见的无限级分类实现方法,并分析其优缺点。 ### 1. 递归...

    ASP递归无限级分类源码

    在IT行业中,数据库管理和数据结构的组织经常涉及到分类问题,特别是在网站内容管理、电商商品分类、文件系统等场景。无限级分类就是解决此类问题的一种有效方法。本文将深入探讨ASP(Active Server Pages)中如何...

    php+mysql无限分类

    无限分类允许用户创建任意层级的分类结构,如商品类别、文章类别等,而无需预先设定分类的最大深度。 PHP是一种广泛使用的服务器端脚本语言,常用于开发动态网页。在处理无限分类时,PHP可以通过递归算法来生成多级...

    asp实现无限级分类

    在ASP(Active Server Pages)开发中,实现无限级分类是一项常见的需求,特别是在构建大型网站或管理系统时,如电商网站的商品分类、文章目录等。无限级分类允许用户无限制地添加子分类,形成一个灵活的层次结构。在...

    JSP无限级分类目录树

    - **电子商务**:电商平台的商品分类也可以利用无限级分类目录树,使商品分类更加清晰。 总的来说,JSP无限级分类目录树技术涉及了JSP、Java后端处理、数据库操作、递归算法以及前端展示等多个方面,是Web开发中的...

    php无限分类的示例

    在PHP编程中,无限分类是一种常见的需求,尤其在处理如文章分类、商品分类等具有层级关系的数据时。无限分类能够使我们构建出任意深度的树形结构,方便管理和展示数据。下面将详细介绍如何使用PHP实现无限分类,以及...

    无限分类源代码

    在IT行业中,无限分类是一种常见的数据组织方式,尤其在网站导航、商品分类、文章目录等场景下被广泛应用。无限分类的实现通常是通过数据库设计和编程技术来完成的,以达到灵活、可扩展的层级结构。这里我们将深入...

    php递归实现无限级分类库.zip

    在PHP编程中,无限级分类库是一个非常实用的工具,特别是在处理如文章分类、商品类别、用户组等具有层级关系的数据时。这个压缩包“php递归实现无限级分类库.zip”提供了一个PHP实现的解决方案,它允许你方便地管理...

    php+mysql数据库无限分类库

    无限分类库在网站内容管理、电子商务、论坛等应用中非常常见,它允许用户无限制地创建层级结构,如商品类别、文章目录等。无限分类库的关键在于设计一个能够存储层级关系的数据结构,并通过有效的查询方式来处理这些...

Global site tag (gtag.js) - Google Analytics