重新认识数据库范式

原创 2006年06月05日 20:20:00

第一范式  

关键字:  粒度.

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

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

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

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

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

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

第二范式

关键字:主键依赖

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

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

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

第三范式

关键字:非主键依赖

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

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

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

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Android程序的结构---重新认识Android(1)

Android程序的结构---重新认识Android(1)

重新认识NTFS文件系统

  • 2014-03-21 01:00
  • 38KB
  • 下载

重新认识汇编语言.caj

  • 2012-12-24 10:59
  • 25KB
  • 下载

揭开Scrum神秘面纱重新认识Agile——记参加ShineScrum的CSM培训有感

第一次接触敏捷还是在2008年之后的5年都在使用Scrum,其间经历过两个项目,两个项目都使用了scrum,我一直担任的都是Scrum Master的角色。说实话这两个项目给我带来的Scrum体验并不...

重新认识java(零) --- 不积跬步无以至千里

好高骛远,眼高手低,是你前进路上最大的绊脚石 — 致走在学习道路上的人 p.s. 本篇文章没有技术含量。
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)