mysql什么时候需要创建关联表?
比如
mysql 使用关联表合适,还是在表里放关联字段合适,当前的设计如下:
1.文章分类表cate
2.文章表article
3.标签表 tag
文章表,里有cate_id,tag_id用来关联两个表
还有种写法:
1.文章分类表cate
2.文章表article
3.标签表 tag
4.文章和文章分类关联表
4.文章和标签关联表
这两种哪种写法更加优化呢?如果建立索引改如何建立,谢谢
mysql什么时候需要创建关联表?
比如
mysql 使用关联表合适,还是在表里放关联字段合适,当前的设计如下:
1.文章分类表cate
2.文章表article
3.标签表 tag
文章表,里有cate_id,tag_id用来关联两个表
还有种写法:
1.文章分类表cate
2.文章表article
3.标签表 tag
4.文章和文章分类关联表
4.文章和标签关联表
这两种哪种写法更加优化呢?如果建立索引改如何建立,谢谢
2 回答7.6k 阅读✓ 已解决
2 回答6.7k 阅读✓ 已解决
1 回答5.3k 阅读✓ 已解决
1 回答5.1k 阅读✓ 已解决
5 回答737 阅读✓ 已解决
1 回答4.4k 阅读
3 回答821 阅读✓ 已解决
其实还是要看业务场景的,以文章例子来说(假设文章表设计是合理的)
如果每篇文章的
cate_id
和tag_id
都是唯一的,那么两种方式各有好处cate_id
和tag_id
写在文章表的好处减少查询或连表次数,缺点是数据量会增长(tag_id
和cate_id
索引,字段数据),而且不利于扩展如果每篇文章的
cate_id
和tag_id
不是唯一,要写在文章表里面,只能以类似tag_id1,tag_id2
这种方式存数据,这种方式不但违反了数据库设计第一范式而且要通过tag_id
反查文章极为困难所以,如果是一对一的关系,用不用关联表看业务,如果是一对多的关系(例如一篇文章多个标签)或多对多,还是用关联表比较方便