三大范式(数据库设计的原则,良好的设计习惯)
第一范式:要求表的每个字段必须是不可分割的独立单元
employee : phone -- 违反第一范式
手机号/电话号
employee :mob_phone tel_phone --符合第一范式
第二范式:在第一范式的基础上,要求每张表只表达一个意思。表的每个字段都和表的主键有依赖。
employee: empId(主键) empName empDept orderName --违反第二范式(订单名称与主键没有依赖)
employee:empId(主键) empName empDept
order: orderId orderName --符合第二范式
第三范式:在第二范式基础,要求每张表的主键之外的其他字段都只能和主键有直接决定依赖关系。
employee:empId(主键) empName deptId deptName --符合第二范式,违反第三范式 (部门名称直接依赖于部门ID,数据冗余高)
employee:empId(主键) empName deptId
dept:deptId deptNamedeptName --符合第三范式(降低数据冗余)