数据库设计范式
①第一范式
表中的所有字段都是不可再分的
比如下表:
是不符合要求的,我们需要进行拆分:
②第二范式
表中必须存在业务主键,并且非主键依赖于全部业务主键
在上述表中如果选取某一列作为主键,比如说用户列作为主键,大家可以看到,其他的比如说章节信息就不是被用户所谓以确定的,所以不符合第二范式;我们再把用户、章节、标题三列作为复合主键信息呢?内容和时间可以被唯一被这三个主键列所决定,但是用户积分只由用户所决定,也不符合第二范式的要求。这样我们就需要把上述表差分成下图两张表:
这样第一张表用用户、章节、标题三列作为复合主键,其他信息都被这三列所确定,第二张表把用户作为主键,积分项就被用户所确定,这样就符合第二范式的要求了!
③第三范式
表中的非主键列之间不能相互依赖
上述表把主标题作为主键,则讲师职位依赖于讲师名,所以违背了第三范式的原则。因此我们需要修改如下: