mysql设计三范式

本文介绍了MySQL设计中的三范式,包括第一范式(1NF)、第二范式(2NF)和第三范式(3NF)。强调了满足1NF的重要性,即字段不可分,每个字段为原子级别。2NF要求有主键且非主键字段依赖主键,3NF则规定非主键字段不能相互依赖。此外,还提到了数据库命名规范,建议采用下划线命名法,并给出制定命名规范的实例。最后,作者提醒读者在进行数据库操作时,最好在个人环境中进行测试。
摘要由CSDN通过智能技术生成

mysql设计三范式

一、三范式

第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德范式(BCNF)、第四范式(4NF)和第五范式(5NF,又称完美范式)。满足最低要求的范式是第一范式(1NF)。在第一范式的基础上进一步满足更多规范要求的称为第二范式(2NF),其余范式以此类推。一般说来,数据库只需满足第三范式(3NF)就行了。所以这里就只记录三范式相关的知识。

  1. 1NF:字段不可分,每个字段是原子级别的,上节中看到第一个字段为ID,它就是ID不能在分成两个字段了,不能说我要把这个人的ID、名称、班级号都塞在一个字段里面,这个是不合适的,对以后的应用造成很大影响;

  2. 2NF:有主键,非主键字段依赖主键,ID字段就是主键,它能表示这一条数据是唯一的,有的读者朋友记性很好,“unique”表示唯一的、不允许重复的,确实它经常会修饰某个字段,保证该字段唯一性,然后再设置该字段为主键;

  3. 3NF:非主键字段不能相互依赖,这个怎么理解呢,比如student表,班级编号受人员编号的影响,如果在这个表中再插入班级的班主任、数学老师等信息,你们觉得这样合适吗?肯定不合适,因为学生有多个,这样就会造成班级有多个,那么每个班级的班主任、数学老师都会出现多条数据,而我们理想中的效果应该是一条班级信息对应一个班主任和数学老师,这样更易于我们理解,这样就形成class表,那么student表和class表中间靠哪个字段来关联呢,肯定是通过“classNo”,这个字段也叫做两个表的外键,后面讲约束的时候老韩会重点讲这个,读者朋友先有个大致了解;

二、命名规范

前面Java的章节中老韩讲了命名规范,一种是驼峰命名法如“classNo”,一种是下划线命名法如“class_no”,下划线命名法是数据库中常用的命名法。如果我们在项目中需要创建大量数据表,在建表之前首先要制作一个命名规范。

如我要在OA系统(网上审批系统)中做表单,来绑定数据表,我在建表的时候可以以公司名首字母缩写开头如公司-GS,后面跟部门名称缩写如综合部-ZHB,后面跟流程名称如出差申请单-CCSQD组合起来就是GS_ZHB_CCSQD这样就能形成表名的规范管理,一目了然。

在系统建设的同事要做好数据字典,就是数据表介绍,与表单的对应关系,字段内容备注等。表中列名的命名最好使用名词,如商品就用goods,不行就拼音,大小写最好区分开,在windows环境下是大小写不敏感的(默认不区分大小写),但是linux是大小写敏感的(默认区分大小写,可以设置大小写不敏感),表名写成小写就是报错,老韩之前在北京上班时候做产品升级的时候就载在这一次,血的教训希望能给朋友们一点收获。

三、数据库做什么操作最好在自己的环境上测试

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Colin_lqk

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值