本帖最后由 csy19871106 于 2014-03-09 23:08:27 编辑

解决方案 »

  1.   

    一般主贴和回复是分开的两个表,然后回复和主贴ID,上层ID,层级,层级路径关联回贴,回贴可以按层级路径进行排序
      

  2.   

    嗯  数据库是这样设计的。
    一个 topic(主题表)
    一个reply(主题回复表)
    reply有topicid 对应主题,parentid对应层级。
    现在的问题是不知道用什么效率的方法来读取,像我帖子说的。如果每页10条的pagesize。我只能先读取所有parentid=0 层级为0的回复然后进行分页,然后每层再读取parentid为层级的replyid,这样效率太低了。如果有10层就要循环10次这个层级的子回复。  
    求大神给我点思路。
      

  3.   

    如果reply表数据如下
    replyid   parentid  context
    1           0         aaaa
    2           1         bbbb
    3           1         cccc
    4           0         dddd
    5           4         eeee
    6           4         ffff
    7           0         gggg
    8           0         hhhh
    9           0         iiii您是指一次性把这9条全读取出来,不进行分页读取,然后通过程序来控制每页几条这样吗?
    这样回复多的话会不会对读取效率有影响呢。
      

  4.   

    你缺少路径 
    path
    0
    0,1
    0,1
    0
    0,4
    0,4
    0
    0
    0
    Order by len(path),path,CreateTime(也可以是id),
      

  5.   

    只懂了一点点,谢谢大神的耐心回复。
    路径具体起什么作用。如果是排序的话。我直接用replyid来排序就行了呀,因为replyid 反正是递增的。还请大神给说明下路径的作用。多谢