mysql 范式

范式:对表结构的要求!

第一范式(1NF,normal format):字段不能再分。这是字段的原子性。例如:字段“学期时间”:2014-9-1,2015-1-15。 这个字段“学期时间”可以再分为“学期开始时间”,2014-9-1;和“学期结束时间”,2015-1-15。

第二范式(2NF):范式是递增的,要满足第二范式,必须满足第一范式!2NF要求字段对主键没有部分依赖!

先说部分,有部分说明主键是复合主键。来个彻底的解决办法就是,让主键不是复合主键,即让主键是一个字段!

再说依赖,依赖是通过一个字段能确定另一字段,我们就说被确定的字段对确定它的字段有依赖。比如:知道了“名字”字段,便能确定“性别”字段。我们就说“性别”字段对“名字”字段有依赖。 

最后连起来解释部分依赖,记录中某些字段的值只是被复合主键中的某个值确定了,我们就说字段对主键有部分依赖。

做法:只要给表一个“id”字段,并设置自动增长,便可。其实就是取消掉复合主键。通过另一个单一字段的主键来代替。一句话,没有复合主键,就没有部分依赖。
写法为:id int unsigned primary key auto_inrement


第三范式(3NF):满足第二范式,并取消传递依赖。要满足第三范式,不能在一张表上操作了,需要把原表拆分成几个表。当然如果不用拆分了,说明已经满足了。

A->B->C C依赖于B,B依赖于A。这就是传递依赖。

做法:每个实体建立一个表,为每个表建立一个主键id。


总结: 应该说,一条记录里面任何两个数据之间都不能有依赖,除了和主键。主键和任何一个数据之间都存在依赖


文章转载自:http://blog.sina.com.cn/s/blog_9d7221820102v8lw.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值