专栏首页潜行前行数据库篇:mysql表设计原则-三范式

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

前言

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

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

第一范式

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

第二范式

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

第三范式

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

欢迎指正文中错误

参考文章

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

Reference

[1]

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

本文分享自微信公众号 - 潜行前行(qianxingcsc),作者:cscw

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2021-01-15

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • MySQL数据库设计三大范式

    设R为任一给定关系, 如果R中每个列与行的 交点处的取值都是不可再分的基本元素,则R为第一范式。

    越陌度阡
  • MySQL-数据库设计范式

    第一范式是指数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值,或不能有重复的属性。

    海盗船长
  • 数据库MySQL-设计原则

    cwl_java
  • MySQL数据库表设计规范

    1、一般都使用 INNODB 存储引擎,除非读写比率<1%,才考虑使用 MYISAM 存储引擎;其 他存储引擎请在 DBA 的建议下使用。 2、Stored p...

    赵腰静
  • [数据库设计]数据库设计三大范式

    一枝花算不算浪漫
  • MySQL数据库——数据库的设计(多表之间的关系与三大范式)与备份还原

    数据库中存放很多表,设计数据库就是设计表,而表就是对现实事物的抽象,设计数据库,需要明白表的关系,也要知道数据库的设计准则,即范式。数据库设计的好坏关系到项目开...

    Winter_world
  • MySQL数据库系列之数据库设计原则

    MySQL中数据库设计原则: 1.一般情况下,应该尽量使用可以正确存储数据的最小数据类型。数据类型不一样,存储的执行效率也不一样。最好使用适度的整型数据类型,...

    林老师带你学编程
  • MySQL数据库设计规范

    MySQL数据库与 Oracle、 SQL Server 等数据库相比,有其内核上的优势与劣势。我们在使用MySQL数据库的时候需要遵循一定规范,扬长避短。本规...

    物流IT圈
  • 数据库MySQL-设计规范

    a、采用26个英文字母(区分大小写)和0-9的自然数(经常不需要)加上下划线’_'组成; b、命名简洁明确(长度不能超过30个字符); c、例如:user,...

    cwl_java

扫码关注云+社区

领取腾讯云代金券