一篇文章包含多张图片,数据库用一对多还是用json字段保存图片字段比较好?

一篇文章包含多张图片,数据库用一对多还是用json字段保存图片字段比较好?还是用其他什么方式存储?

比如朋友圈,如果按一对多来存储:

朋友圈表           朋友圈图片表
friend_circle     pictures
id                id
content           address  //图片地址,string类型
                  friend_circle_id

假设1条朋友圈有9张图片,当有100万条朋友圈时,图片表有900万条数据,每查询一条朋友圈就要去900万条图片表遍历一次,这样效率是不是很低?

mysql5.7以上支持存储json数据,如果用json存储每条朋友圈的图片:

朋友圈表          
friend_circle     
id               
content 
address  //图片地址,json类型,例如:["1":"picture01.jpg","2":"picture02.jpg","3":"picture03.jpg"]

json存储就不会去遍历那么大一张图片表,只是json的解析可能会费点时间,在数据量比较大的情况下,感觉这种方式更有优势,但是我也不是很确定,所以请大佬帮分析一下,谢谢

阅读 9.5k
2 个回答

没有必要在数据库里面存储这种关系吧,用json维持关系是挺不错的,而且不用去浪费数据库资源

这个怎么存都行吧。不过我还是建议在用户上传图片的时候,直接把图片重命名,然后保存图片的id到数据库就行了。之后客户端显示图片,绑定图片完整路径,不用在数据库中查找。

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