java吧 关注:1,293,958贴子:12,829,015
  • 14回复贴,共1

关于贴吧楼中楼的数据库设计,最优解大讨论;

只看楼主收藏回复

帖子中的楼中楼不可能根据每个楼层ID查询N次,这十分浪费资源;
如何高效的设计,一起讨论下.
我的方案是: 单独建立 楼中楼 数据表,关联楼层ID;
回复和删除楼中楼时,更新该楼中楼前5条数据的is_show字段为 1; //前五条是在主贴中显示的;
主贴显示: 获得楼层ID的数组, 利用sql命令in语句+ where is_show=1,来提取楼中楼数据;
缺点是:回复和删除楼中楼需要额外的操作,批量删除十分浪费资源,修改楼中楼显示条数需要一次数据库维护,感觉非最优解;
一起讨论下, 找出最优解; 迟早会用到的;


1楼2016-06-30 10:53回复
    不删除楼层,直接隐藏不可见不就行了!反正我自己写肯定楼中楼里的数据单独建表存放!毕竟菜鸡一个,只会这样做


    IP属地:广东来自Android客户端2楼2016-06-30 11:05
    收起回复
      2026-01-08 22:40:51
      广告
      不感兴趣
      开通SVIP免广告
      msg(帖子表),comment(评论表),user(用户表),可能还有tieba(贴吧表),msg安时间倒序排,comment安时间正序排,进入某个贴吧,先load出500条msg分页(Java吧首页50条msg和刚好10页),当然这是我猜的~菜鸟一枚~


      IP属地:浙江来自Android客户端3楼2016-06-30 11:25
      收起回复
        完全看不懂的菜鸡有个疑问。。。你是多寂寞不用加班么


        来自Android客户端4楼2016-06-30 11:45
        回复
          可以专门设置一个字段保存路径,就像浏览器地址的那种格式一样,以一种分割线符分割,每个子节点保存它的所有父节点爷爷节点等等,然后查询时可以用like


          IP属地:河南来自手机贴吧5楼2016-06-30 11:48
          回复
            问下百度的程序猿不就知道了


            来自Android客户端8楼2017-04-22 09:26
            回复
              可以先查出前10条评论的所有回复的ID,再筛选出每条评论前5条回复的ID,然后根据这些ID用in去查回复,两次查询。


              IP属地:山东9楼2017-05-31 11:42
              回复