数据库3范式

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范式在某些业务需求中我们可以降低其标准,比如需求中一张项目进度详细表和项目表具有关联关系,我们此时需要做一个统计,统计项目详细,此时是需要我们获取项目名称的(项目编号导出其实无实际意义,用户不能明白),那么我们在详细表中设计项目编号的同时需增加项目名称进行存储,这样可以大大提高效率。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值