业务场景:当我们进行头条文章接口的设计时,需要存储封面图片的字段。

文章和图片关系 ----> 一对多

方案一:传统的表设计
设计一张表,专门保存文章和封面图片之间的关系

id article_id(文章id,FK外键) cover_url (封面url地址)
1 2 url1
2 2 url2
3 4 url3
4 5 url4

提出问题

文章的封面一般是不会去修改的,但是在文章首页都需要展示,此时又涉及到关联查询,所有速度是比较慢的。

方案二: 使用mysql-5.7版本新型字段

优化方案: 使用mysql-5.7版本新型字段:json字段
在文章article表中,新增一个cover文章封面字段,数据格式为json

设计表的时候,定义字段语法
sql语法: cover json NOT NULL COMMENT '封面'
flask语法:cover = db.Column(db.JSON, doc='封面')

Json数据格式

cover = "{'type': 0, 'pics': [] }"
cover = "{'type': 3, 'pics': [url1, url2, url3]}"
cover = "{'type': 1, 'pics': [url1]}"
cover = "{'type': 9, 'pics': [url1....]}"

最终的文章表加上cover字段

id tittle cover
1 我是标题 “{‘type’: 3, ‘pics’: [url1, url2, url3]}”

mysql新增字段json本质:
json字段只是一层封装,底层还是使用LONGTEXT长文本实现的 但是mysql给json类型提供了一些函数方便使用

mysql数据库表设计——如何对图片进行存储相关推荐

  1. MySQL数据库表设计

    MySQL数据库表设计 ​ 数据库设计(Database Design)是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求(信息要 ...

  2. Python3,网站搭建之数据库表设计及数据存储!文末的彩蛋,我酸了~

    搭建自己的网站,是作为一个码农成功标志之一, 那其他成功标志有啥呢, 嘿- 左手搂着白富美,右手撸着小烧烤,脚底踩着桑塔纳- 嗯~ 这么潇洒的人生,就从数据库表设计及数据存储开始吧! 数据库表设计及存 ...

  3. MySQL - 数据库表设计 - 范式

    目录 一.数据库设计的重要性 二.范式 - 简介: 1.什么是范式? 第一范式 - 单一列 第二范式 - 中间表 - 一对多 第三范式 - 不产生中间表 - 一对一.多对一 三.数据库表设计的注意要点 ...

  4. 架构师必备技能之——MySQL数据库表设计

    好记忆不如烂笔头,能记下点东西,就记下点,有时间拿出来看看,也会发觉不一样的感受. 目录 一.总体设计思想 二.字段相关设计原则 三.索引设计原则 四.SQL操作原则 五.其他原则 一.总体设计思想 ...

  5. 高性能Mysql数据库表设计原则

    为什么80%的码农都做不了架构师?>>>    1.更小通常更好 选择表示数据的最小类型(正确存储你的内容):比如说,能够使用char 数据类型存储,就不必选择varchar,能够使 ...

  6. 搭建个人博客之 mysql 数据库表设计

    代码地址:https://github.com/hefeng6500/blog-server/blob/master/sql_design/blog.sql SHOW DATABASES; DROP ...

  7. mysql数据库表设计理论原则实践

    文章目录 一.理论原则 1.原始单据与实体之间的关系 2.主键与外键 3.基本表的性质 4.范式标准 5.通俗地理解三个范式 6.要善于识别与正确处理多对多的关系 7.主键PK的取值方法 8.正确认识 ...

  8. Mysql学习总结(17)——MySQL数据库表设计优化

    1.选择优化的数据类型 MySQL支持很多种不同的数据类型,并且选择正确的数据类型对于获得高性能至关重要.不管选择何种类型,下面的简单原则都会有助于做出更好的选择: (1).更小通常更好

  9. 程序员面试之MySQL数据库表的设计

    如果要选择一门程序员必备的技能,那答案无疑是数据库,而MySQL是首选.很多企业在面试过程中会提问MySQL数据库表设计要注意什么,接下来小千就给大家讲解一下. MySQL相较于MSSQL SERVE ...

最新文章

  1. C++:录入班级数学成绩,计算最大值、平均值、不及格人数
  2. 强大的DataGrid组件[13]_字段过滤(Filter)——Silverlight学习笔记[21]
  3. Unet项目解析(6): 图像分块、整合 / 数据对齐、网络输出转成图像
  4. 5s突然一直信号无服务器,手机突然没信号了怎么回事?
  5. C# .NET 使用DotNetZip开源类库 处理 压缩/解压 Zip 处理乱码情况
  6. 分析Vector、ArrayList、Hashtable、HashMap数据结分享一下
  7. 谷歌真是厉害,这次成了公敌!
  8. Safe3通用远程溢出漏洞扫描系统
  9. 服务器定时关机 修改时间,服务器调定时关机
  10. 2021年9月再次更新-日立电梯,艾默生变频器维修图纸,原理图
  11. 斐讯路由怎么设置虚拟服务器,192.168.2.1斐讯路由器设置的方法?
  12. greedy算法计算金字塔分数问题
  13. JavaScript数据类型、引用类型、操作符、语句
  14. win7计算机网络连接,笔记本win7无线网络红叉电脑网络连接不可用的解决方法
  15. 和python哪个容易胖_碳水化合物,脂肪和蛋白质,到底吃哪个更容易胖?
  16. kali搭建Linux版本的小皮面板
  17. 本科毕业论文问卷调查怎么写
  18. 微信小程序学习第6周————模块化
  19. RadosClient OSDC
  20. Threejs—BIM管道流向动态效果

热门文章

  1. 自学考试——信息系统开发与管理
  2. 把握新时代的投资机会,品今控股专家分析“新经济”发展方向
  3. nanosleep php,PHP time_nanosleep( )用法及代码示例
  4. Q1营业利润大幅腰斩,露露柠檬靠线上卖瑜伽裤有望止损?
  5. 小黑重装出现指纹“无法与传感器通讯,请确认传感器已经准备就绪”之解决方法...
  6. linux求最大公约数视频,C语言求最大公约数代码及解析
  7. 对于程序员和架构师来说最重要的事【小结】
  8. jsplumb设置锚点_拓扑图编辑器-jsplumb基本配置
  9. 湖南大学21夏训练四11.蛇形矩阵
  10. 知乎上的神人、大牛都有哪些?