MySQL——数据库设计三范式
0、数据库设计范式
设计范式是数据库表的设计依据,如何进行数据库表的设计。
设计数据库表时按照三范式进行,可以避免表中数据的冗余,空间的浪费。
1、第一范式
要求任何一张表必须有主键,每一个字段原子性不可再分。【最核心最重要的范式】
2、第二范式
建立在第一范式的基础上,要求所有非主键字段完全依赖主键,不要产生部分依赖。
多对多关系表怎么设计: 多对多,三张表,关系表两个外键
eg:
学生表(stu_id, stu_name) ; 教师表(teacher_id, teacher_name) ; 关系表(id, stu_id, teacher_id)
3、第三范式
建立在第二范式的基础之上,要求所有非主键字段直接依赖主键,不要产生传递依赖。
一对多关系表怎么设计:一对多,两张表,多的表加外键
eg:
班级表(class_id, class_name) ; 学生表(stu_id, stu_name, class_id)
一对一关系表怎么设计:一对一,外键唯一
在实际开发中,可能存在一张表字段太多,太庞大,这时候要拆分表
eg:一张表存登录信息,一张表存用户详细信息
设计策略:外键唯一策略(Foreign Key + Unique) ————外键加一个唯一性约束
ps:
【在sql中,连接次数越多,效率越低(笛卡尔积)】
【为了减少表的连接次数,有时会用空间冗余换执行速度,sql语句的编写难度也会降低】
MySQL——数据库设计三范式相关推荐
- MySQL之数据库设计三范式
目录 一.简介 第一范式 第二范式 第三范式 结语 学习计划: 一.简介 我们数据库表设计的时候需要尽可能的遵循三范式,具体是 第一范式(1NF): 强调的是列的原子性,即列不能够再分成其他几列, ...
- [数据库03]-约束(唯一性-主键-外键/存储引擎/事务/索引/视图/DBA命令/数据库设计三范式
[数据库03]-约束(唯一性-主键-外键)/存储引擎/事务/索引/视图/DBA命令/数据库设计三范式 一.约束 1.1 唯一性约束(unique) 1.2 主键约束 1.3 外键约束 二.存储引擎 2 ...
- MySQL面试题 数据库设计三范式
第一范式 属性(字段)的原子性约束,要求属性具有原子性,不可再分割: 比如个人信息,个人信息不能作为一个字段,它可以再分为姓名.name.age等: 第二范式 记录的惟一性约束,要求记录有惟一标识,每 ...
- 深入浅出数据库设计三范式
设计良好结构的数据库,可以有效减小数据冗余,减少增删改中出现的问题.深入理解数据库设计的三范式,对于设计"健壮的数据库"十分有必要.数据库三范式是设计数据库 时参考的准则,接下来我 ...
- 浅析数据库设计三范式
在学习数据设计的时候,N种专业术语,看的头疼.但又不能不学,所以只好把它们整理整理出来,好让自己对它们有一个更深的理解.特别是对三范式(Normal Formal)的理解. 三范式指的是 ...
- 数据库设计三范式(3NF)
问:当时你数据库是如何设计的? 答:当时是按照三范式规范设计的: 第一范式: 1:数据库的原子性,即保证数据库表的每一列都不可分割的 第二范式: 1:原子性,即保证数据库表的每一列都不可分割 2:表中 ...
- 数据库设计三范式的举例及四大特性说明
更多免费教学文章请关注这里 前言 数据库课本上都把范式写到五范式了,但是实际应用中,满足三范式已经足够了,五范式太多余了. 三种范式是条件递增的联系(即后一个范式是在前一个条件满足的情况下引入新的条件 ...
- 【数据库】数据库设计三范式
数据库设计的三大范式 为了建立冗余较小.结构合理的数据库,设计数据库时必须遵循一定的规则.在关系型数据库中这种规则就称为范式.范式是符合某一种设计要求的总结.要想设计一个结构合理的关系型数据库,必须满 ...
- 数据库设计三范式详细介绍--数据库设计规范之数据库设计三范式
为什么需要数据库设计 1. 我们在设计数据表的时候要考虑很多问题问题,比如: 用户都需要什么数据?需要在数据表中保存哪些数据? 如果保证数据表中数据的正确性,当插入.删除.更新的时候该进行怎么样的约束 ...
最新文章
- k8s系列~mgr的应用
- 机器学习(MACHINE LEARNING)MATLAB蚁群算法解决TSP问题
- GIS基本知识学习PDF文档
- vegas9.0合成计时器
- MySQL中事物的详解
- pannel添加的子窗体很大_超简单的地瓜粉焖子做法全解,零失败
- 利用 %20 替换 空格
- 案例 自动办公_办公自动化案例教程(双色)(含微课)
- 安装linux系统收费标准,LINUX操作系统安装标准规范.doc
- 理解numpy数组中的各个维度代表的具体意思(axis)
- 《Cisco防火墙》一8.7 通过NAT规则定义连接限制
- 用三层交换机实现大中型企业VLAN
- mysql 驱动包 mysql-connect-java
- 微软应用商店microsoft store 打不开
- matlab两矩阵乘除,MATLAB矩阵乘法
- 数字人民币的基础-共识与信任
- SCSI与USB的关系
- Echarts X轴内容过长自动隐藏,鼠标移动上去显示全部
- 彻底关闭自带杀毒软件windows defender,Antimalware Service Executable
- must be of typexxx解决方法
热门文章
- 7.Excuse me/thanks|/Help/ask/some/祈使句
- SpringBoot——druid监控中心
- python批量修改图片的exif信息,增加GPS信息。
- 微信开发 | 配置微信公众号关键域名(一)
- html 获取class节点,jquery获取class元素
- 已知矩形的三个顶点坐标,求最后一个的顶点坐标(向量求法)
- IOS中Socket详解
- 【转发】思华SDN技术在盛大游戏G云2.0中的应用
- 云管理员、云架构师和云应用开发人员的职位描述与工作职责介绍
- 如何去除hao123或者百度主页劫持?