mysql数据库设计问题。现有文章表和文章回复表,每一篇文章都有多个回复,如何查询每一篇文章的全部回复;
我的思路是回复表作为文章表的从表,将文章表的id作为回复表的外键。
文章的字段分为(文章表的id、标题、内容)artical_id、titile、a_content;
回复表的字段为(回复表的id、文章表的id、回复的内容)id、artical_id,c_content;
当查看某一篇文章时,显示该文章的所有评论。
不知道这种设计是否可行?
可行!凑5个字
但是我觉得这样设计是有问题的。假设文章比较多,而每一篇文章的回复也比较多,
那这样以后文章回复表的内容会非常多,查询的效率也将越来越慢;这个问题该如何解决呢
@沉迷学习、无法自拔:
首先普通pc机mysql单表几百万数据毫无压力,datacenter 单表几千万毫无压力。
其二,数据量真的特别大的时候可以分表设计。比如按照文章id取模分他娘的1000个表。够不够(^_^)
@czd890: 也就是说所有的文章回复都保存在文章回复表中,但是这样的话每次查询评论的话都要遍历回复表的所有数据,假设评论有几百万条,我在想这样子效率是不是柑橘很低啊?
我想的另外一个办法是为每一篇文章建立一张相关联的回复表;
比方说当有人发表了新的文章后数据库就动态的建立一张回复表。
但是查询了相关资料后发现这种方法好像不可取,希望大佬可以给个意见
@沉迷学习、无法自拔:
假设评论有几百万条
如果你在文章id上建立了索引,然后再查询的话,速度还是很快的,毫无压力。个位数的毫秒响应时间
@czd890: 哦哦,是这样的啊。谢谢解答
@沉迷学习、无法自拔:
索引为什么能为查询带来惊人的效率提升,多看看文章
https://www.cnblogs.com/aspwebchh/p/6652855.html
https://www.cnblogs.com/gavinsp/p/5513536.html
数据很大 要么 提高关系型数据库性能(比如集群、sqlserver、oracle),或者换做nosql方案等等