一个文章表(article),文章数量上亿
一个标签表(tags),标签数量在几千个
现在要给文章打tag,建了张中间表关联文章和标签(article_tags)
可能article_tags数量级是文章表的几倍或十几倍
想给article_tags分表,但是查询时会通过tag_id 查询所有标签下面的文章,又会在文章详情里面查询所有标签,这该怎么分表呢?求解决方案.
一个文章表(article),文章数量上亿
一个标签表(tags),标签数量在几千个
现在要给文章打tag,建了张中间表关联文章和标签(article_tags)
可能article_tags数量级是文章表的几倍或十几倍
想给article_tags分表,但是查询时会通过tag_id 查询所有标签下面的文章,又会在文章详情里面查询所有标签,这该怎么分表呢?求解决方案.
分表规则:
tags_id % 10
1、通过tag_id 查询所有标签下面的文章。
根据分表规则找到对应的table,进而查询对应的文章id
2、文章详情里面查询所有标签
文章表建立一个新字段,逗号隔开存储标签
5 回答3.3k 阅读✓ 已解决
3 回答3.6k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
5 回答1.4k 阅读
2 回答1.8k 阅读
3 回答2k 阅读
1 回答3.6k 阅读
一篇文章对应多个标签,一个标签下有多篇文章,多对多的关系。
解决方法:
article_tags增加一列,记录文章所有的标签。(毕竟一篇文章的标签不会特别多)
于是就有3列,一列标签id,一列文章id,一列文章所有标签id;
按照标签id分表,通过tag_id 查询能所有标签下面的文章,
所有标签和标签表关联查到所有标签。