MySQL三大范式和五大约束

一 数据库设计三大范式

1.1 第一范式(1NF)

         原子性、 数据不可再分。

原地址表
IDStuAddress
1天津   10080
2上海   10082
3杭州   10083
4深圳   10084
......
调整之后的表
IDStuAddresssStuCall
1天津10080
2上海10082
3杭州10083
4深圳10084
.........

1.2 第二范式(2NF)

         唯一性  使得每一行 数据具有唯一性,并消除数据之间的部分依赖。例如订单表只描述订单相关信息,所以所有字段都必须与订单id相关;产品表只描述产品相关的信息,所以所有字段都必须与产品id相关;因此不能在一张表中同时出现订单信息与产品信息。

orders
订单编号产品编号订购日期产品名称
001A0012000-2-3HP 3120

拆分之后:

orders
订单编号订单日期
0012000-2-3
products
产品编号产品名称
A001HP 3120
  • 如果一个关系满足1NF,并且除了主键之外的其他列,每个属性是功能依赖于整个键,而不是部分的键则满足第二范式。
  • 第二范式要求每个表只描述一件事情。

1.3 第三范式(3NF)

         独立性,消除传递依赖。例如:订单表中需要有客户相关信息,在分离出客户表之后,订单表中只需要有一个用户id即可,而不能有其他的客户信息。因为其他的客户信息直接关联于用户id,而不是直接与订单id直接相关。

orders
订单编号订单日期顾客编号顾客姓名
0012000-2-3AB001Tony

拆分之后:

orders
订单编号订购日期顾客编号
0012000-2-3AB001

二 数据库五大约束

  • primary KEY:设置主键约束;
  • UNIQUE:设置唯一性约束,不能有重复值;
  • DEFAULT 默认值约束,height DOUBLE(3,2)DEFAULT 1.2 height不输入是默认为1,2
  • NOT NULL:设置非空约束,该字段不能为空;
  • FOREIGN key :设置外键约束。
  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值