数据库设计
自关联:引用自身主键作为自己的外键,使表中行记录产生关联关系
三大范式:
1NF:原子性
也就是说表中任何一个列都是唯一的,不可再拆分的。拆到不能拆,分到最细
外国人名字必须拆分成first_name和last_name,而年龄不能拆分成个位和十位
地址详细划分省市区
2NF:在1NF的基础上,不存在非关键列部分依赖于关键列,也就是说所有非关键列部分都必须完全依赖于关键列。
非主键列与主键列没有必然的关系时需要拿出再做表
例如:学号,姓名,课程,成绩
学号与姓名是一一对应密不可分的,而课程名与学号没有关系,成绩没有必然关系,需要将课程和成绩拿出
3NF:在2NF的基础上,不存在 非关键列传递函数 依赖于关键列,也就是说,所有的非关键列 都 必须 直接依赖于关键列
如果A依赖于B,B依赖于C,我们就说A传递函数 依赖于C
某非主键列与主键列有关系但自身也可以成为另一张表的主键,需要拿出再做表
如:sid,sname,uid,uname,uphone,address
其中sname,uid直接依赖与sid;uname,uphone,address直接依赖与uid,而与sid没有依赖关系
此时需要把sid,sname,uid放一张表,uid,uname,uphone,address放一张表