-
您的位置:首页 → 技术开发 → ASP技巧 → bbs的树状结构算法
bbs的树状结构算法
时间:2004/11/7 4:11:00来源:本站整理作者:蓝点我要评论(0)
-
数据库设计中order_value是用来排序的,具体实现是
**注意以下的讨论是对一个主题而言,就是对一棵树而言!
如果加一新贴那么 order_value=0
如果跟贴查比父贴 order_value大的order_value
如果有假设为next_value,那么新帖的
order_value为父贴的(order_value+next_value)/2;
如果有那么新帖的order_value为父贴的order_value+1000
也就是说如果对A贴跟贴,如果A为末贴,A的字帖的order_value为order_value(父)+1000,
不是末贴既找出比A大的order_value,新的order_value为两者的一半!
排序实现: order by groupid,order_value desc
**技巧如果想实现层次多一点可以每次加的多一点+100000,那样应该会好一点
***不足之处:
1:使用两个字段排序,速度有点慢
2:使用order_value是一个浮点数,使用float估计不够,还是使用double
3:只能实现理论上的无穷层实际上超过10层使用float有问题,使用double可能没有
4:插入是需要查找下一个order_value
Dim ordervalue, nextvalue As Double
sql = "select gorders where gId=" & gId & " and goders> " & gorders & " order by goders "
rs1.Open sql, conn1, adOpenForwardOnly, adLockOptimistic '查询比父贴大的
order_value
If (rs1.EOF And rs1.BOF) Then
gorders = gorders + 256
gLayer = gLayer + 1
Else
nextvalue = rs1("gorders")
If (nextvalue - gorders) > 1 Then
gorders = Int((gorders + nextvalue) / 2)
gLayer = gLayer
Else
'gorders,glayer跟回帖一样
End If
End If
End Sub
相关阅读
Windows错误代码大全 Windows错误代码查询激活windows有什么用Mac QQ和Windows QQ聊天记录怎么合并 Mac QQ和Windows QQ聊天记录Windows 10自动更新怎么关闭 如何关闭Windows 10自动更新windows 10 rs4快速预览版17017下载错误问题Win10秋季创意者更新16291更新了什么 win10 16291更新内容windows10秋季创意者更新时间 windows10秋季创意者更新内容kb3150513补丁更新了什么 Windows 10补丁kb3150513是什么
-
热门文章
没有查询到任何记录。
最新文章
VB.NET 2005编写定时关
Jquery get/post下乱码解决方法 前台gbk gb如何使用数据绑定控件显示数据ASP脚本循环语句ASP怎么提速
人气排行
轻松解决"Server Application Error"和iis"一起学习DataGridView调整列宽用ASP随机生成文件名的函数Jquery get/post下乱码解决方法 前台gbk gbODBC Drivers错误80004005的解决办法返回UPDATE SQL语句所影响的行数的方法用Javascript隐藏超级链接的真实地址两个不同数据库表的分页显示解决方案
查看所有0条评论>>