喜欢本站并加入收藏
首 页 电脑学园 技术文档 图形图像 办公应用 网页设计 管理资料 PPT模板 方案合同
 位置: 北方教程网 >> 网页设计 >> Asp专题 >> 正文
   Asp无限级分类的简单算法实现及代码重点讲解
Asp无限级分类的简单算法实现及代码重点讲解
[ 作者:佚名   来源:网络整理   点击数:   更新时间:2007-1-20 ]
一、前言
       很多情况下二级分类已经不能满足需要了,而网上可用的多级分类的例子实在是不好找,故有此文。
http://bbs.blueidea.com/viewthread.php?tid=1182243
大家可以先看这个,它介绍了一种超级好的算法,反正我是看不大懂呀。

二、我们要解决的问题:
1、 分类算法常常表现为树的表示和遍历问题。那么,请问:如果用数据库中的一个Table来表达树型分类,应该有几个字段?
2、 如何快速地从这个Table恢复出一棵树;
3、 如何判断某个分类是否是另一个分类的子类;
4、 如何查找某个分类的所有产品;
5、 如何生成分类所在的路径。
6、 如何新增分类;

三、递归实现的优点与缺点
       该怎么实现多级分类呢?
       估计首先想到的都是递归,实现简单,在指定节点(就是分类,下同)下添加、修改、删除节点都不是问题,
而且节点移动实现起来也不是很难,只是要注意移动目的父节点不能是当前节点的父节节点(等于没移动),也不能是当前节点的子节点(类似于window文件夹,一个文件夹是不能移动到自己的字文件夹里的)。
       但是最愁人的是搜索指定节点下的东西,怎么办?也就是上面的问题3。记住,这是要包括所有子节点的,难道还去递归吗?

四、介绍下我的简单算法(是我所用的,不是我发明的)
       以常见的商品系统为例。
       4.1 表结构
              [1]分类表,T_Sort,表结构如图一所示。其中sortPath保存的是节点路径,这是个重点。
              [2]商品表,T_Product,表结构如图二所示。
图一


图二


       4.2 算法简要说明
              [1]parentID保存的自然是节点的父节点,如果一个节点的parentID=0时,认为它是一级分类。
              [2]一个节点的sortPath为它的父节点的sortPath+自己的sortID+","。如sortID=32的节点的父节点是节点21,节点21的sortPath是"0,21,",那么节点32的sortPath就是"0,21,32,"。有点绕,看图三清楚啦。可能你想不通为啥最后要多个逗号啊,后面你就明白啦。所有节点的sortPath的左边两位都是"0,",因为它们都在根节点下。一个节点的sortPath一定包含在它的子节点的sortPath中。

图三

       4.3 代码重点讲解。
              这里以我们要实现的功能为例讲解。
              [1]添加节点
                     <1>选择父节点,可以是根节点,或是下级所有节点(最好列出一个树型菜单让用户选择,别愁,可以实现),其实就是选择parentID。
                     <2>如果parentID=0,那么上级sortPath="0,",如果parentID<>0,那么到表T_Sort根据parentID取得上级sortPath。
                     <3>给T_Sort新增记录,sortPath=上级sortPath +新记录的sortID +","。
                     <4>范例代码见图4、图5。其中noRecord,closeRs(),showMsg(),closeConn()都是我定义的Function或Sub,它们的功能都是顾名思义的,我就不说了。注意一下,如果你用MS SQL,代码略有不同。我也很奇怪MS SQL时,addNew后,这个新的自动编号可以输出,但是和字符一连接就没有了。各位如果知道为什么,还请相告。
上一篇文章: 详解ASP木马的原理和基本防范 下一篇文章: 详解ASP建立站内信息搜索系统技巧
打印此文  收藏此页  关闭窗口  返回顶部
 相关文章  热点文章
 · 利用CSS改进网站设计的小技巧
 · Dreamweaver快捷操作技巧集锦
 · 使用Dreamweaver架设网站简明教程
 · 网页设计制作过程中常用的几个代码技巧
 · 高效使用CSS编码的方法
 
热点图文
教你节省Vist...
使用Windows ...
 · 远程管理Web服务器的方法技巧
 · Win Vista系统自带IIS7.0设置详解...
 · 详解Windows系统IIS6.0功能及应用...
 · 服务器集群系统实现方法及案例分...
 · IIS服务器实现asp,cgi和php+mysq...
 · IIS下SQL Server数据库安全设置技...
推 荐 阅 读
巧用Photosho...
Photoshop鼠绘...
 · Fireworks制作旋转的漂亮gif动画...
 · Photoshop制作都市满天繁星
 · Fireworks制作Menu按钮
 · 巧用Photoshop制作喜迎奥运壁纸
 · 巧用Photoshop钢笔工具绘制彩色美...
 · Photoshop制作浪漫动感花朵
 设为首页 - 加入收藏 - 关于本站 - 联系我们 - 广告合作 - 友情链接 - 在线交流 - 
CopyRight© 2006-2009 Eduai.Com All Rights Reserved
在线交流 QQ:524152258 辽ICP备07001851号
免责声明:本站部分资源来自网络,如有侵犯您的版权请通知,我们立即删除。