捐赠 | 广告 | 注册 | 发布 | 上传 | 关于我们    
  粤ICP备10103342号-1 DELPHI盒子 | 盒子文章 | 盒子问答悬赏 | 最新更新 | 盒子检索 | 下载中心 | 高级搜索    
  精品专区 | 繁體中文 | 奖励公告栏 | 直通车账号登陆 | 关闭GOOGLE广告 | 临时留言    
 
广告
评论:快速创建树的方法 (抛弃拙劣的数据库结构和算法)
zcdownturn 41739 2011/7/31 3:13:05
也许有人不知道移动是怎么实现,我的方法是用存储过程实现的,虽然麻烦点,但并不复杂就判断一下移动的方向和批量修改一下排序的序号就可以了,谁有更好的方法请说出来让大家参考一下
zcdownturn 41738 2011/7/31 2:56:30
这种方法肯定比递归快N倍,上面有人说递归还open,close,我想没有人会笨到递归还要open,close的,即使是不open,close递归也要多循环很多次,作者的方法只需循环一次,肯定会比递归快N倍,作者的这种方法是一次性读取最快的方法,当然比动态加载要慢,比递归的添加,删除,排序和移动也复杂一些,但都是可以实现的,这种方法比较适合一次性加载节点记录数在5000到3万之间,如果大于3万就请使用动态加载的方法,如果小于5000可以使用递归的方法,非常感谢作者提供这种比递归要快的方法给大家参考,不懂的人不要随便攻击作者
li_xl 40232 2010/6/15 23:52:45
这个代码确实简洁,不过如果层数多并且同一级的兄弟节点要讲究次序的话不知是否也可行。我目前使用的是嵌入数据库,没有使用SQL方法,代码很长,但没有楼主所说的超过1万个节点就死机的情况。我目前的节点数约2.5万个,在奔腾3、1G主频、256M内存的笔记本上运行良好。至于速度,没有对比过,不知是快是慢。
hawklm 33956 2008/4/29 21:54:00
这个只适合层数比较少的情况,对于层数多的,就麻烦了
hplovezy2008 33677 2008/4/12 17:40:34
ID   Data   IDparents   IDlayer 这样效果应该很好
jlwen 30979 2007/8/24 23:37:54
思路不错的
suneves 30138 2007/6/22 15:03:47
用ID+ParentID的方式也可以用循环来实现。
bsense 27351 2006/11/28 13:04:30
会计软件,科目就是这个结构,也有好处(是国标嘛)
bsense 27350 2006/11/28 13:03:23
我觉得可以用动态数组做,第一次select count into :tree_node_count from xxxxtable
第而次query 出所有数据,xixi
sgpxd 27191 2006/11/17 10:58:52
所有的数据库建树都是一次读取数据阿。

用datasource 或者dataset 不是都只查询一次,然后返回结果集么?
dgy_snakeking 26825 2006/10/25 21:37:08
如果一个节点有成百上千个子节点,要拖动这个有无数多个子节点的节点到另一个节点下面..........楼猪就傻帽了.
qsmile 25731 2006/8/29 16:38:19
我也在用这方法,这不是什么新东东.

我是在做网页中时使用.
zbluecn 23707 2006/5/18 22:57:14
发现 作者!! 怎么说那 RP 有点问题
zbluecn 23706 2006/5/18 22:53:46
怎么觉的象vb里的一个组建的方式那 ~~那个组建我是不敢恭维

我在建立 BOM数的时候 向这这种方法 根本就不敢使用。
michaelqz 21224 2006/1/24 0:41:34
michaelqz 21223 2006/1/24 0:39:49
谁说递归要重复搜索数据库?不会把表的内容放在内存里吗?这样显示的时侯非常快,而且在实际应用时非常的方便.
michaelqz 21222 2006/1/24 0:35:58
拜托,我一开始在写无限级控件时也有想过这样,但这种算法在使用应用时会碰到大问题,不相信等老兄在开发一套大系统时就会碰到上面这些人说的问题了.
xcwen 20750 2006/1/8 22:11:44
这个做法有独到之处.但很显然,它的可扩展性很差.10000和1024同样受到局限.     假如:表数据是:
          中国 福建省 福州 ........ 10个级别
          那么那个列表的定义行数将是 01010101010101010101 这个数(十进制)
而且国家..的个数最大为100 大可笑了.
还有:如果将西雅图市归到中国时,还要去查中国的ID 
  这个方法不太可行!
fcj 20727 2006/1/7 13:48:45
这种方法只能解决简单的树形结构,如果对树有复杂的操作的话那就不行了,比如:楼上的兄弟所说的一样,节点的移动,那就不麻烦了,哎。
数据库结构设计应该考虑后期扩展的问题...
tanbro 20707 2006/1/6 16:32:36
个人觉得还是 ParentId + ID 的递归来表示树形结构比较好
第一页 上一页 下一页 最后页 有 52 条纪录 共3页 1 - 20
 用户名:
 密 码:
自动登陆(30天有效)
 
  DELPHI盒子版权所有 技术支持:深圳市麟瑞科技有限公司 1999-2024 V4.01 粤ICP备10103342号-1 更新RSS列表