现在的位置: 首页 > 综合 > 正文

树形结构的保存方法

2013年10月04日 ⁄ 综合 ⁄ 共 810字 ⁄ 字号 评论关闭

树形控件让我们的软件更具人机交互性,树形控件的友好表达,会使软件用户在某种程度工作得更愉快。下面谈谈树形结构的保存方法,看看如何增强用户体验。

下面是一个各种值的直观表示(为了容易理解,这里按照序数的升序排列,实际实现时将按降序,以让最后的帖子显示在最前面):
 
1.topic1(层=0,序数=1)
5.Re:topic1(层=1,序数=1.125)
4.Re:topic1(层=1,序数=1.25)
3.Re:topic1(层=1,序数=1.5)
6.Re:Re:topic1(层=2,序数=1.75)
8.Re:Re:Re:topic1(层=3,序数=1.7875)
7.Re:Re:topic1(层=2,序数=1.825)
2.topic2(层=0,序数=2)
10.Re:topic2(层=1,序数=2.5)
9.topic3(层=0,序数=3)
11.Re:topic3(层=1,序数=3.5)
 
从上面这个例子中可以看出,随着层的增加,以及跟帖的增多,其序数的尾数越来越多,因此,这种方法的一个可能的问题是,SQL SERVER中无法表示足够小的浮点数,以至于将两条帖子的序数认为是一样的了。经过实验知道,SQL SERVER的浮点数有8位,最多能支持一条帖子有1023条回贴。
 
上述方法的另一个缺点是帖子列表时要做浮点的比较,插入帖子的时候要做浮点的加法和除法,不过除法因为刚好是除以2,所以在浮点运算时只需要较少的操作。但这属于机器指令级的开销增长,比起在脚本或VB程序里的递归导致WINDOWS系统调用的开销来要小得多,另外,对系统内存的要求降低到了最小,因此理论上认为是划算的。
 
请您就这种方法的可行性进行分析论证,因为我想把它设计成能支持大容量用户访问的系统,所以务必经过周密的分析。
这只是一个方法而已,你可以想想其他方法,创新更重要。
 
飞鸽传书是一款局域网即时通讯软件,支持消息发送,文件夹传输等功能,无需服务器,简单易用。

抱歉!评论已关闭.