一个关于数据库树型结构表转换的问题

06-03-20 tyeoon
假设有一个树状表(TreeTable):columns为:

id,name,parentid

要将他转换到一平面结构表中(TargetTable):columns为:

id,总行,分行,支行,网点

其中的总行,分行,支行,网点 显示该部门和他的上级部门名

比如有四条记录正好是父子关系,那么在TargetTable中就应记录为:

id 总行 分行 支行 网点

1 总行1

2 总行1 分行1

3 总行1 分行1 支行1

4 总行1 分行1 支行1 网点1

用JDBC和SQL-Server数据库的话,在大数据量的前提下(100万条以上),怎样才能比较快速的转换呢??我想了几种方法,在速度上都很不理想,要耗时几小时才转换完,大家帮忙想下有没有比较好的解决方案。

谢谢

1
tyeoon
2006-03-21 09:11
没有人回么?顶下先,问题主要在大数据量的时的处理时间上,想了几种方案都不行,有人给点建议么???

banq
2006-03-21 15:51
>用JDBC和SQL-Server数据库的话,在大数据量的前提下(100万条以上),怎样才能比较快速的转换呢??

首先,你的解决问题的域范围是局限在数据库范围内,这在进行J2EE分析设计应该纠正的,这是错误的。

我们考虑范围应该是对象领域模型的范围中,对象领域模型物理空间是J2EE应用服务器内存中或数据库,因此,基于领域模型的思考范围可以为我们带来更宽广更可能简单更有效的解决方案。

打个比喻,如果你的视野只局限在一个村或一个县范围,那么问题可能是一个难题,但是如果你视野开阔,立足于更高更宽广范围,基于中国或世界范围内,问题就不是难题了。

我们第一次将一颗树涉及的关系数据ID全部从数据库中获得,在缓存中建立一个当前域范围内的树,随着访问增加,缓存中这棵树结构就越加完整,性能也就更好。

具体解决模式采取composite+Visitor模式,文章见:

http://www.jdon.com/jive/thread.jsp?forum=91&thread=23857

代码可见JiveJdon3.0源码。

猜你喜欢