Mysql业务设计(逻辑设计)
逻辑设计
数据库设计三大范式
数据库设计第一大范式
- 数据库表中所有的字段都只具有单一属性
- 单一属性的列是由基本数据类型所构成
- 设计出来的表都是简单的二维表
数据库设计的第二大范式
要求表中只有一个业务主键,也就是说符合第二范式的表不能存在非主键列,只对部分主键的依赖关系
数据库设计的第三大范式
指每一个非非主属性既不部分依赖于也不传递依赖于业务主键,也就是在第二范式的基础上相处了非主键对主键的传递依赖
反范式化设计
为啥要有这个东西呢,就是因为如果过分的依赖于三大范式,设计出来的表虽然很符合规范,但是SQL的查询性能将会很差,所以才有了反范式设计
什么叫反范式化设计:
- 反范式化是针对范式化而言的,在前面介绍的三大范式
- 所谓的反范式化就是为了性能和读取效率的考虑而适当的对数据库设计范式的要求进行违反
- 允许存在少量冗余,换句话来说反范式化就是用空间换时间
逻辑设计总结
不能完全按照范式的要求进行设计
考虑以后如何使用表
范式化设计优缺点
优点:
可以尽量的减少数据冗余
范式化的更新操作比反范式化更快
范式化的表通常比反范式化的表要小
缺点:
对于查询需要多个表进行关联
更难进行索引优化
反范式化设计的优缺点:
优点:
可以减少表的关联
可以更好的进行索引优化
缺点:
存在数据冗余及数据维护异常
对数据修改需要更多的成本
作者:彼岸舞
时间:2020\07\08
内容关于:Mysql
本文来源于网络,只做技术分享,一概不负任何责任
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」