|
![]() |
名片设计 CorelDRAW Illustrator AuotoCAD Painter 其他软件 Photoshop Fireworks Flash |
|
数据库设计中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 返回类别: 教程 上一教程: 再来一套加解密字符串的FUNCTION 下一教程: 6行代码实现无组件上传 您可以阅读与"BBS的树状结构算法"相关的教程: · BBS的树状算法的补充程序 · 用排序串字段实现树状结构(存储过程) · 用排序串字段实现树状结构(原理) · 用排序串字段实现树状结构(例程??删除贴子) · 用排序串字段实现树状结构(例程??显示树) |
![]() ![]() |
快精灵印艺坊 版权所有 |
首页![]() ![]() ![]() ![]() ![]() ![]() ![]() |