首页 新闻 会员 周边 捐助

多篇文章对应多个评论

0
悬赏园豆:100 [已解决问题] 解决于 2018-09-06 13:03

mysql数据库设计问题。现有文章表和文章回复表,每一篇文章都有多个回复,如何查询每一篇文章的全部回复;
我的思路是回复表作为文章表的从表,将文章表的id作为回复表的外键。
文章的字段分为(文章表的id、标题、内容)artical_id、titile、a_content;
回复表的字段为(回复表的id、文章表的id、回复的内容)id、artical_id,c_content;
当查看某一篇文章时,显示该文章的所有评论。
不知道这种设计是否可行?

沉迷学习、无法自拔的主页 沉迷学习、无法自拔 | 初学一级 | 园豆:54
提问于:2018-09-06 11:53
< >
分享
最佳答案
0

可行!凑5个字

收获园豆:100
czd890 | 专家六级 |园豆:14488 | 2018-09-06 11:59

但是我觉得这样设计是有问题的。假设文章比较多,而每一篇文章的回复也比较多,
那这样以后文章回复表的内容会非常多,查询的效率也将越来越慢;这个问题该如何解决呢

沉迷学习、无法自拔 | 园豆:54 (初学一级) | 2018-09-06 12:03

@沉迷学习、无法自拔:
首先普通pc机mysql单表几百万数据毫无压力,datacenter 单表几千万毫无压力。
其二,数据量真的特别大的时候可以分表设计。比如按照文章id取模分他娘的1000个表。够不够(^_^)

czd890 | 园豆:14488 (专家六级) | 2018-09-06 12:09

@czd890: 也就是说所有的文章回复都保存在文章回复表中,但是这样的话每次查询评论的话都要遍历回复表的所有数据,假设评论有几百万条,我在想这样子效率是不是柑橘很低啊?
我想的另外一个办法是为每一篇文章建立一张相关联的回复表;
比方说当有人发表了新的文章后数据库就动态的建立一张回复表。
但是查询了相关资料后发现这种方法好像不可取,希望大佬可以给个意见

沉迷学习、无法自拔 | 园豆:54 (初学一级) | 2018-09-06 12:18

@沉迷学习、无法自拔:
假设评论有几百万条

如果你在文章id上建立了索引,然后再查询的话,速度还是很快的,毫无压力。个位数的毫秒响应时间

czd890 | 园豆:14488 (专家六级) | 2018-09-06 12:59

@czd890: 哦哦,是这样的啊。谢谢解答

沉迷学习、无法自拔 | 园豆:54 (初学一级) | 2018-09-06 13:02

@沉迷学习、无法自拔:
索引为什么能为查询带来惊人的效率提升,多看看文章
https://www.cnblogs.com/aspwebchh/p/6652855.html
https://www.cnblogs.com/gavinsp/p/5513536.html

czd890 | 园豆:14488 (专家六级) | 2018-09-06 13:02
其他回答(1)
0

数据很大 要么 提高关系型数据库性能(比如集群、sqlserver、oracle),或者换做nosql方案等等

花飘水流兮 | 园豆:13617 (专家六级) | 2018-09-06 12:28
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册