http://expert.csdn.net/Expert/FAQ/FAQ_Index.asp?id=11939

解决方案 »

  1.   

    演示效果:
    http://caoying.inows.com/BBS/best_tree.aspx`
      

  2.   

    父帖是0层,子贴是大于0层的;每增一帖,就取当前贴和下一父帖(序数大于1的,如果只有第一个父帖,那下一帖的序号就是2)的序数相加除2得新增贴的序数(如:第一次增加帖,序号为1,主题为1,层为0,第二次增加其子帖时,序号为?<(1+2)/2=1.5>,主题为1,层为1);每增一个父帖,他的序数就增1;每增一个同一层子贴,他的序数就减少;每增不同层的子贴,他的序数就增加。
        但是增加一个字段,用来保存主题,一个父帖和他下面的子帖都为同一个主题,作为主排序,序数作为从排序。
        在显示的时候就出现了问题:用主从排序一起决定显示的数序。
        语句大致如下:
        select ... from ... order by topic(主题) , order(序数)    
        显示大致如下:2.topic2(层=0,序数=2,主题=2)
    1.topic1(层=0,序数=1,主题=1)
      5.Re:topic1(层=1,序数=1.125,主题=1)
      4.Re:topic1(层=1,序数=1.25,主题=1)
      3.Re:topic1(层=1,序数=1.5,主题=1)
        6.Re:Re:topic1(层=2,序数=1.75,主题=1)
          8.Re:Re:Re:topic1(层=3,序数=1.7875,主题=1)
        7.Re:Re:topic1(层=2,序数=1.825,主题=1)