1.关系型数据库默认满足一范式:数据库字段具有独立的含义不可分割。比如用户表,用户名称“张三”此字段是一个名字,你不能再把他分割为”张“和“三”
2.所谓2范式是表中数据不重复满足第二范式。在表设计中主键约束就是此用法,也就是说我们表中存储数据不能有重复数据。在我们开发中经常遇到此问题。开发经验:表在设计时我们需创建一个逻辑主键与一个业务主键。比如学生表students:设计表结构时我们 id int ,student_no varchar2.....这个主键只是自增不代表任何业务。
3.3范式就是不能有冗余字段。比如我们的一些信息可以经过推理得出那就不能设计到表中。比如项目表 project : int proj_id,proj_name varchar(100),parcel_id varchar(20).... 宗地表 parcel_id varchar(20) ,parcel_code varchar(20)....这两张表 具有关联关系,那么我们想到得到宗地编码parcel_code ,我们可以通过关联关系得到,而不需要在项目表中去创建这些字段。
数据库设计经验:其实3范式在某些业务需求中我们可以降低其标准,比如需求中一张项目进度详细表和项目表具有关联关系,我们此时需要做一个统计,统计项目详细,此时是需要我们获取项目名称的(项目编号导出其实无实际意义,用户不能明白),那么我们在详细表中设计项目编号的同时需增加项目名称进行存储,这样可以大大提高效率。