捐赠 | 广告 | 注册 | 发布 | 上传 | 关于我们    
  粤ICP备10103342号-1 DELPHI盒子 | 盒子文章 | 盒子问答悬赏 | 最新更新 | 盒子检索 | 下载中心 | 高级搜索    
  精品专区 | 繁體中文 | 奖励公告栏 | 直通车账号登陆 | 关闭GOOGLE广告 | 临时留言    
 
广告
评论:快速创建树的方法 (抛弃拙劣的数据库结构和算法)
cuihongwei 20571 2006/1/2 14:25:35
任何方法都有其优劣,根据实际情况选择合适的方法!
没有什么方法是万能的,让任何人满意的!
owl 20513 2005/12/30 15:28:32
这么烂的算法也敢拿出来!!!
谁说用递归算法就定会多次查询数据库?
dregs 20464 2005/12/29 18:14:20
这么烂的水平也口出狂言!现在的年轻人啊!
abcdv 20371 2005/12/27 13:26:09
vvyang,记得使用BeginUpdate/EndUpdate
能提出看法肯定是好的,但是也要虚心接受别人的建议
我并不觉得你的方法有什么特别之处?
你不觉得别人可能早就考虑过你的方法?

同时对wangguol的看法表示赞同,在实际应用中父子型的可操作性还是比较好的
xukehg 20358 2005/12/27 9:23:49
看了 楼主的算法 觉得楼主的算法的一个好处在于
只访问一次数据库 就可以建立一个树形结构起来 但我个人认为
如果移动节点 对你的树形结构编码的修改 就会显得比较麻烦 比如把美国的州全改道中国去  那么你的节点编号改动就不小了

递归的方法被人诟病的主要原因是重复访问数据库
但我觉得不把数据库查出来 然后根据条件过滤 也可以做到只访问那一次数据库的效果
我个人认为递归只是让代码变得简洁 效率是不好恭维的

至于递归用的ParentID ID 结构  我见到一篇 用StringList加Terrview
一次查询数据库 得到树形结构的 不过这样有个问题
他查询的时候用到了 Order by ParentID ID 这样的语句
这就导致了数据节点不能移动到其他节点下 否则重新创建就出问题
sspeak 20324 2005/12/25 19:28:25
另外,从本质上来说,作者的方法还是用到了ID、ParentID,只是把所有的各级ParentID和自身的ID写到一个字段里,这不得不说是个拙劣的方法。
sspeak 20323 2005/12/25 19:22:19
这两种方法就象数组和列表.
作者的方法只适用于数据比较固定的情况,如果要添加/删除/移动节点,就需要额外的处理,还更容易出错.
用ID/ParentID是逻辑上更自然、更清晰,处理上更高效的方法。
520god 20318 2005/12/25 11:25:17
不同情况适合用不同方法,不能一概而论!小库有小库的方法,记录多有记录多的途径.
能共享就应该支持,事物是发展的,没有谁能说现在优秀的代码不会在以后淘汰.
wangguol 20317 2005/12/25 10:56:37
这个年轻人,程序做的不怎么样,脾气倒是不小。
我们数据库有100万条的记录,都像你这样编码,早就死掉了。
况且用户也不需要一下子看到所有的记录,在点击某个节点的时候取得下层信息是最好的。
另外利用数据库父-子关系是最好的,利用数据库的约束功能能避免错误的增加删除信息。
520god 20314 2005/12/25 0:37:34
就像吃饭时把筷子加上一条绳子系在右手上的固定位置再去吃饭一样?
为了什么?就为了证明位置对?顺序对?结果就是用了右手?
vvyang 20297 2005/12/24 12:37:27
To mmkill:
  什么叫“没通用性”,别人已经用在软件里你他妈的还大谈“通用性”呢,就因为不能跟那个什么 devExpress 连接么?别拿无知当个性,不想看滚到一边去,谁他妈请你进来了?所有递归都能化成循环形式,你所谓的递归最后也被编译器处理掉了,真他妈把递归当高科技了,写个递归就把自己当 SB 了?
mmkill 20295 2005/12/24 9:48:19
纯粹的垃圾。没任何通用性。
处理树用递归是最好的选择,代码比你的还短。效率差点不是问题,廉价的硬件。
riverqh 20281 2005/12/23 15:57:39
我情愿加一个字段是表示层次的,在SELECT的时候就排好序,然后根据结果集创建树节点
xinxinhg 20279 2005/12/23 14:40:08
很好。。很聪明的做法。。加结点的时候编码也比较容易处理
gowebs 20269 2005/12/23 9:14:25
vvyang 20240 :可否解释下原理~谢~
520god 20262 2005/12/22 22:04:29
我还是比较喜欢这个,比起改变数据结构要容易多了!
我觉得仅仅是为了显示一个树型结构就要改变数据结构的做法不可取.
难道只为了一些微不足道的细节,并且是可以用其它方法实现的细节就要去牺牲数据空间以及不顾数据亢余性?
vvyang 20240 2005/12/21 22:16:26
To wangguol:
    呵呵,我只说是建议啊。你愿意用什么我就管不着了,你愿意吃×也没人管你啊。好心好意贴点东西不至于这样吧。
    另:标题是有点嚣张,第一次发贴,见笑了。
fengjiwei 20238 2005/12/21 21:01:11
精神可嘉,但标题之中的态度也太有点那个了,况且内容也并不是非常NB,至于这么嚣张吗?不过怎么说楼主还是值得表扬的,只不过以后态度一定得谦虚才是,你说呢老弟?
全部像你这样的思路,如果我的树有十几层,有几十层,那你的这个编码该有多长呢?俺还是比较倾向于根据不同的需求用不同的算法,有时用ID和ParentID,有时也用楼主这样的思路,呵呵!
dl8212 20235 2005/12/21 18:48:38
你的标题有点嚣张
dl8212 20234 2005/12/21 18:47:38
递归是算法中比较快的一种了,你只所以说慢,就是因为iamdream的观点,用递归可以只取一次,没必要OPEN,CLOSE
第一页 上一页 下一页 最后页 有 52 条纪录 共3页 21 - 40
 用户名:
 密 码:
自动登陆(30天有效)
 
  DELPHI盒子版权所有 技术支持:深圳市麟瑞科技有限公司 1999-2024 V4.01 粤ICP备10103342号-1 更新RSS列表