数据库篇:mysql表设计原则-三范式

Posted 潜行前行

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库篇:mysql表设计原则-三范式相关的知识,希望对你有一定的参考价值。

前言

关系型数据库的表在设计时,我们常常需要考虑哪些业务字段应该放哪张表,字段是否应该拆分,表与表之间该怎么关联。那有没有相应的规范或者原则来指导我们去设计表呢?数据库设计三范式;三范式主要是解决表之间的关联关系,和字段冗余问题

关注公众号,一起交流,微信搜一搜: 潜行前行

第一范式

  • 列都是不可再分,第一范式的目标是确保每列的原子性,每列都是不可再分的最小数据单元
  • 身高体重是两个属性,违反第一范式,不能划分为同一个列
  • 符合第一范式的设计 数据库篇:mysql表设计原则-三范式

第二范式

  • 首先满足第一范式,并且表中非主键列不存在对主键不依赖或者部分依赖,确保每个列都和主键相关。一般因为是存在多个主键,或者存在复合主键,因此需要拆表
  • 存在复合主键(学号,学科),而学科学分却只依赖分部主键-学科,不符合第二范式 数据库篇:mysql表设计原则-三范式
  • 第二范式的正确示范 数据库篇:mysql表设计原则-三范式
数据库篇:mysql表设计原则-三范式

第三范式

  • 满足第二范式,并且表中的列不存在对非主键列的传递依赖,每列都和主键列直接相关,而不是间接相关
  • 在成绩表里,爱好是依赖学生的,学生又是依赖主键ID,存在传递依赖应该提取出学生的个人信息为表。 数据库篇:mysql表设计原则-三范式
  • 符合第三范式的规范

欢迎指正文中错误

参考文章

  • mysql 数据库的设计三范式 [1]

Reference

[1]

mysql 数据库的设计三范式: https://www.cnblogs.com/xiaozengzeng/p/10720226.html


以上是关于数据库篇:mysql表设计原则-三范式的主要内容,如果未能解决你的问题,请参考以下文章

数据库表结构设计方法及原则

数据库表设计三大范式原则

数据库设计原则

Mysql学习总结(85)——开发人员最应该明白的数据库设计原则

005-MYSQL数据库设计原则

浅谈Mysql 表设计规范