重新认识数据库范式

第一范式  

关键字:  粒度.

一个典型的例子是地址,我们需要把地址作为一个字段,还是分为省,市,详细住址,

简单的回答是根据应用而定.

重构方法,如果你的WHERE语句中需要对一个字段作SUBSTRING之类的操作时,

这说明粒度太粗.要再细分出你要SUBSTRING的部分来.

另外,有些设计人员喜欢给每个表加一个AUTO-INCREMENT的ID,

而不是逻辑主建,这样做将浪费存储空间并降低查询效率.

第二范式

关键字:主键依赖

如果你是个无神论者,那你应该知道你头发的长度不取决于你女朋友的身分证号码.

从OO的观点看,你头发的长度不是你女朋友的属性.

重构方式,参照你的类设计,重点注意与类的属性不对应的数据库字段.

第三范式

关键字:非主键依赖

一个容易理解的例子是学生的记录中不应该有全班学生人数的信息.

从OO的观点来看,全班学生人数是班级的属性,不是学生的属性.

重构方式,参照你的类设计,如果两个类的属性出现在同一表中,你就要注意了.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值