php,mysql 朋友圈多条动态对应多条评论如何查询

  1. 动态表a

    id content
    1 动态1
    2 动态2

  2. 评论表b
    id msg a_id
    1 评论1 1
    2 评论2 1
    3 评论3 2
    4 评论4 2

如何实现朋友圈一样(mysql怎么查询)

动态1
    --评论1
    --评论2
动态2 
   --评论3
   --评论4

阅读 3.9k
3 个回答

你的b表不太完善,因为评论还有对应的回复评论,所以b表应该还有个parent_id,默认是0,就是直接评论的,如果有parent_id,则是回复评论。

联合查询,评论表是和动态表通过外键id关联起来的,查询动态表的时候,where条件为评论表的外键id=动态表的主键id

正好公司项目涉及到这一块.我们是这样处理的:

有几个条件可以利用一下:
    1.评论不可修改(所以可以适当冗余).
    2.动态列表里面展示所有评论并不好(个人认为)...可能只需要展示三五条.
    3.设计sql表的时候尽量做到利于查询(需要计算的字段可以适当的直接存结果).毕竟添加跟删除比查询的次数少的多.
基于上面的条件,公司是这样做的:
    1.动态表保存三五条"最先评论(自己造的词,见笑~)",反正评论不会改...
    2.动态列表只查动态表,因为在动态列表里面评论只展示前面几条.
    3.想看评论点动态右下角的"查看更多",这时候只查评论表.

这种设计查询很方便,只进行单表查询就可以,而且对于数据同步也没有太高的要求.虽然评论数据有冗余,但是评论一般不修改.缺点是插入评论复杂了.不过幸好插入比查询次数少的多.
还没有实际投入使用.欢迎交流...

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题