数据库表结构设计时,遵从一定的范式(NF,Noraml Form)可以减少数据冗余和操作异常。
第一范式(1NF)
1NF指的是每个属性值都是不可再分的。
满足1NF的关系被称为规范化的关系,1NF也是关系模式应具备的最起码的条件。
比如有这样一张表user的两列:
- name
- phone_number
phone_number这一列只存储一个电话号码,如果一条数据同时存储了住宅电话和手机号码,比如:“010-65576558,13765556765”,那么这个属性是可以再分的,违背了1NF。
第二范式(2NF)
2NF要求去除局部依赖。
也就是说,表中的属性完全依赖于全部主键,而不是部分主键。
比方说user表包含下面几列:
- user_id
- name
- phone_number
- job_id