- 动态表a
id content
1 动态1
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
id content
1 动态1
2 动态2
如何实现朋友圈一样(mysql怎么查询)
动态1
--评论1
--评论2
动态2
--评论3
--评论4
正好公司项目涉及到这一块.我们是这样处理的:
有几个条件可以利用一下:
1.评论不可修改(所以可以适当冗余).
2.动态列表里面展示所有评论并不好(个人认为)...可能只需要展示三五条.
3.设计sql表的时候尽量做到利于查询(需要计算的字段可以适当的直接存结果).毕竟添加跟删除比查询的次数少的多.
基于上面的条件,公司是这样做的:
1.动态表保存三五条"最先评论(自己造的词,见笑~)",反正评论不会改...
2.动态列表只查动态表,因为在动态列表里面评论只展示前面几条.
3.想看评论点动态右下角的"查看更多",这时候只查评论表.
这种设计查询很方便,只进行单表查询就可以,而且对于数据同步也没有太高的要求.虽然评论数据有冗余,但是评论一般不修改.缺点是插入评论复杂了.不过幸好插入比查询次数少的多.
还没有实际投入使用.欢迎交流...
5 回答3.4k 阅读✓ 已解决
3 回答3.7k 阅读✓ 已解决
1 回答4.2k 阅读✓ 已解决
3 回答1.9k 阅读✓ 已解决
2 回答2.3k 阅读✓ 已解决
5 回答1.4k 阅读
2 回答2.1k 阅读
你的b表不太完善,因为评论还有对应的回复评论,所以b表应该还有个parent_id,默认是0,就是直接评论的,如果有parent_id,则是回复评论。