该如何添加字段能够提高生成这个树的速度???(100分)

  • 主题发起人 主题发起人 yuting
  • 开始时间 开始时间
Y

yuting

Unregistered / Unconfirmed
GUEST, unregistred user!
语文-
|
第一册
|
第二册
要求:能够对生成的树进行调序,如第二册可以拖拽放到第一册上面,已经实现,
而且数据命名有规则如语文A1,第一册A1001,第二册A1002,按添加顺序递增。
现有几个字段,第一个编号(值如A1),第二个,父节点ID,,第三个用来在属于同一个
父节点的节点间排序。现在生成树,是利用递归,先生成语文,在添加第一、二册。
第一、二册按照 ORDER BY 本层INDEX,编号排序
编号 父节点 本层INDEX 名称
A1 A 999(默认值) 语文
A1001 A1 0(等于同层节点的INDEX值) 第一册
A1002 A1 1 第二册
但是这样生成速度太慢,现在是三层,客户端通过应用程序从数据服务器取数据
500条纪录需要一分钟,能不能通过增加字段来提高速度呢?但要保证上面的要求!
如何调整设计?
 
提供思路:
1、在应用服务器合成层次树的文本数据包,客户端取得后解析生成树。
2、数据库 中语文的编码改成A1000,这样应用程序可以直接返回数据集,你在客户端对数据集操作,生成树应该挺容易的,尽量减少网络通讯次数。
3、数据量过大时,可以先考虑生成语文这一层,用户双击打开时在取语文的数据。
 
第一个方法我再考虑一下
第二个不可,命名规则就这样定的,而且现在是有两个表,还有一个章节表,而章节表以
命名以B开头,也有父节点和上面提到的表关联。本来可以加上生成树节点的Level字段以提高速度,但因为涉及到调序和另外一个表生成到同一棵树,所以.....
第三个在图标的表现上感觉不好,而且用户要求可以全部展开,这样还是要取得全部数据。
我主要想加一个字段来达到效果,调序的实现方法可以改,但命名规则不能
 
这样生成速度真的很慢,客户端经常会提示连接超时,需要再次连接。有没有更好的方法,请各位赐教!
我想在服务器上先生成树的顺序,可游标名称似乎只能固定,不能形成递归:(
 
按照guilong的第三种方法作的,一开始很不屑:)
完成之后才发现比我想象的好许多。
谢谢!!
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部