mysql什么时候需要创建关联表?

mysql什么时候需要创建关联表?
Center

比如

mysql 使用关联表合适,还是在表里放关联字段合适,当前的设计如下:
1.文章分类表cate
2.文章表article
3.标签表 tag
文章表,里有cate_id,tag_id用来关联两个表
还有种写法:
1.文章分类表cate
2.文章表article
3.标签表 tag
4.文章和文章分类关联表
4.文章和标签关联表
这两种哪种写法更加优化呢?如果建立索引改如何建立,谢谢
阅读 7k
1 个回答

其实还是要看业务场景的,以文章例子来说(假设文章表设计是合理的)

如果每篇文章的cate_idtag_id都是唯一的,那么两种方式各有好处

  1. 使用关联表的好处是减少文章单表的数据量,易于拓展,缺点是需要连多一个表
  2. cate_idtag_id写在文章表的好处减少查询或连表次数,缺点是数据量会增长(tag_idcate_id索引,字段数据),而且不利于扩展

如果每篇文章的cate_idtag_id不是唯一,要写在文章表里面,只能以类似tag_id1,tag_id2这种方式存数据,这种方式不但违反了数据库设计第一范式而且要通过tag_id反查文章极为困难

所以,如果是一对一的关系,用不用关联表看业务,如果是一对多的关系(例如一篇文章多个标签)或多对多,还是用关联表比较方便

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏