前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >数据库篇:mysql表设计原则-三范式

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

作者头像
潜行前行
发布2021-01-21 17:26:13
1.1K0
发布2021-01-21 17:26:13
举报
文章被收录于专栏:潜行前行潜行前行

前言

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

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

第一范式

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

第二范式

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

第三范式

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

欢迎指正文中错误

参考文章

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

Reference

[1]

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-01-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 潜行前行 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
    • 关注公众号,一起交流,微信搜一搜: 潜行前行
      • 第一范式
        • 第二范式
          • 第三范式
            • 欢迎指正文中错误
              • Reference
          • 参考文章
          相关产品与服务
          云数据库 SQL Server
          腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档