问:当时你数据库是如何设计的?

答:当时是按照三范式规范设计的:

第一范式:

  1:数据库的原子性,即保证数据库表的每一列都不可分割的

第二范式:

  1:原子性,即保证数据库表的每一列都不可分割

  2:表中必须包含主键

  3:其他非主键字段必须完全依赖主键,联合主键情况下,不能依赖主键的一部分,

    通俗来讲就是每个非主键字段必须和主键有依赖关系(传递依赖关系也算有依赖关系,A依赖B,B依赖C,所以A就依赖C)

第三范式: 

  1:原子性,即保证数据库表的每一列都不可分割

  2:表中必须包含主键

  3:其他非主键字段必须完全依赖主键,联合主键情况下,不能依赖主键的一部分,

    通俗来讲就是每个非主键字段必须和主键有依赖关系(传递依赖关系也算有依赖关系,A依赖B,B依赖C,所以A就依赖C)

  4:其他非主键字段必须完全直接依赖主键,不能是传递依赖

如有问题欢迎各路大侠评论纠正!

转载于:https://www.cnblogs.com/wbl001/p/10921621.html

数据库设计三范式(3NF)相关推荐

  1. MySQL之数据库设计三范式

    目录 一.简介 第一范式 第二范式 第三范式 结语 学习计划: 一.简介   我们数据库表设计的时候需要尽可能的遵循三范式,具体是 第一范式(1NF): 强调的是列的原子性,即列不能够再分成其他几列, ...

  2. [数据库03]-约束(唯一性-主键-外键/存储引擎/事务/索引/视图/DBA命令/数据库设计三范式

    [数据库03]-约束(唯一性-主键-外键)/存储引擎/事务/索引/视图/DBA命令/数据库设计三范式 一.约束 1.1 唯一性约束(unique) 1.2 主键约束 1.3 外键约束 二.存储引擎 2 ...

  3. 浅析数据库设计三范式

       在学习数据设计的时候,N种专业术语,看的头疼.但又不能不学,所以只好把它们整理整理出来,好让自己对它们有一个更深的理解.特别是对三范式(Normal Formal)的理解.     三范式指的是 ...

  4. 数据库设计三范式的举例及四大特性说明

    更多免费教学文章请关注这里 前言 数据库课本上都把范式写到五范式了,但是实际应用中,满足三范式已经足够了,五范式太多余了. 三种范式是条件递增的联系(即后一个范式是在前一个条件满足的情况下引入新的条件 ...

  5. 【数据库】数据库设计三范式

    数据库设计的三大范式 为了建立冗余较小.结构合理的数据库,设计数据库时必须遵循一定的规则.在关系型数据库中这种规则就称为范式.范式是符合某一种设计要求的总结.要想设计一个结构合理的关系型数据库,必须满 ...

  6. 数据库设计三范式详细介绍--数据库设计规范之数据库设计三范式

    为什么需要数据库设计 1. 我们在设计数据表的时候要考虑很多问题问题,比如: 用户都需要什么数据?需要在数据表中保存哪些数据? 如果保证数据表中数据的正确性,当插入.删除.更新的时候该进行怎么样的约束 ...

  7. MySQL面试题 数据库设计三范式

    第一范式 属性(字段)的原子性约束,要求属性具有原子性,不可再分割: 比如个人信息,个人信息不能作为一个字段,它可以再分为姓名.name.age等: 第二范式 记录的惟一性约束,要求记录有惟一标识,每 ...

  8. 深入浅出数据库设计三范式

    设计良好结构的数据库,可以有效减小数据冗余,减少增删改中出现的问题.深入理解数据库设计的三范式,对于设计"健壮的数据库"十分有必要.数据库三范式是设计数据库 时参考的准则,接下来我 ...

  9. MySQL——数据库设计三范式

    0.数据库设计范式 设计范式是数据库表的设计依据,如何进行数据库表的设计. 设计数据库表时按照三范式进行,可以避免表中数据的冗余,空间的浪费. 1.第一范式 要求任何一张表必须有主键,每一个字段原子性 ...

最新文章

  1. 杭电1019 Least Common Multiple(已解决)
  2. python 信息检索,python信息检索代码_信息检索_倒排记录表合并算法实现(python)...
  3. Entity Freamwork 6连接PostgreSql数据库
  4. linux上寻找并杀死僵尸进程
  5. Git冲突与解决方法【转】
  6. EOS经济系统分析[转载]
  7. ConcurrentLinkedQueue的实现原理和源码分析
  8. C语言精髓篇|函数的参数和返回值
  9. Windows API封装:LoadLibrary/FreeLibrary
  10. 小程序开发入门教程 一
  11. SpringBoot 中 @Transactional 的使用
  12. 惊心动魄的阿波罗登月:软件和程序员才是幕后的英雄
  13. ardupilot在Linux上设置SITL(FlightGear)
  14. vss服务器状态失败_修复VSS 6.0错误的方法
  15. 橘子娱乐完成华创资本千万美元B+轮融资
  16. 大学计算机课程制作生日卡片,计算机《制作生日贺卡》教学设计.doc
  17. 职场干货 | 如何让你的自我介绍,快速打动面试官
  18. 高通骁龙处理器天梯排行榜2022 骁龙处理器发布时间排行
  19. 区块链扩展性技术总结
  20. c#简单几步实现圆角按钮

热门文章

  1. Android FlashLight教程
  2. Linux ifconfig命令示例
  3. 转:C++ map的基本操作和使用
  4. 开课吧-Java常见面试题:重载和重写的区别?
  5. 开课吧课堂:超类变量如何引用子类对象?
  6. xxl_job springboot改造
  7. 软件测试过程中的度量与分析
  8. linux下监控磁盘空间脚本
  9. 企业网站的生命周期到底有多长 如何能够持续性发展下去
  10. [转]送给和我一样曾经浮躁过的PHP程序猿