数据库设计范式
第一范式:
要求任何一张表必须有主键,每一个字段原子性不可再分。
以上表不满足第一范式
原因:①没有主键
②联系方式可以分为邮箱地址和电话
应更改为以下:
第二范式:
建立在第一范式的基础上,要求所有非主键字段完全依赖主键,不要产生部分依赖。
以上表不满足第一范式:
原因:无主键
满足第一范式修改:
学生编号和教师编号联合做主键(复合主键)
不满足第二范式,“张三”依赖1001,“王老师”依赖001,产生了部分依赖。
后果:数据冗余,空间浪费。
满足第二范式,修改:
第三范式:
建立在第二范式的基础上,要求所有的非主主键字段直接依赖主键,不要产生传递依赖。
以上这个表满足第一范式(有主键),满足第二范式(是单一主键,没有产生部分依赖)。
不满足第三范式:
原因:一年一班依赖01,01依赖1001,产生了数据的传递依赖。
修改:
总结:
*一对多:*
一对多,两张表,多的表加外键
*多对多:*
多对多,三张表,关系表两个外键