做过MIS系统的都知道,一般说来,数据分为两种:基础数据和业务数据。一般说来,业务数据中肯定包含多个基础数据,比如简单地说一张机票数据,它就包括:货币类型、机场、航空公司等多个基础数据,这个时候,如果都要建立FK的话,是没有任何意义的,更不需要去考虑什么级联删除的,结果只有一个,严重影响效率,而且结构凌乱。但是在业务数据中,机票的基本信息和机票的价格构成了一个整体,这个时候如果不使用FK,那么在设计上是个失误,在实现的时候也绝对是个隐患!比如删除的时候,删除了机票,但是留下了机票的价格,大家可以相信,这是多么荒谬的事情。
所以,使不使用FK,关键要区分基础数据和业务数据。
另外,一个好的数据库设计并不是纯粹考虑数据库,而是来源于好的业务建模和对象建模。
首先基础数据的不存在并不能代表业务数据的不存在或者逻辑错误,其次,比如基础数据,是不能随意删除的,当然,我们有很多的控制方法,比如失效等什么的。对于基础数据不用外键是综合各方面考虑的,不是说不能用外键,但是用了外键将导致一个非常可怕的问题,就是数据访问的问题,每访问一个业务数据,那么意味着有可能要join访问10个以上的表,效率会严重降低。
好的数据库设计不能是没有一点冗余,或者说严格符合关系要求,因为实际的应用是面向对象的,在将面向对象的数据转换为面向关系的数据时,是需要这样做的。从逻辑上说,一个基础数据的不存在,并不代表什么,比如说,你没有输入一个国家或者删除一个国家,并不代表没有了这个国家。而业务数据就不同了,如果你删除了一张业务数据,那么就代表了该业务数据已经不存在,而此时再存在与之相关的业务数据是不符合逻辑的(比如一个法规作废,那么与之相关的法规就都必须受影响)。
好的数据库设计来自于好的对象设计。
分享到:
相关推荐
凤舞天骄TB商店修改器V1.0(DELPHI源代码)
国航凤舞九天入职培训结业试题 “凤舞九天”自 2006 年始,已成为公司新员工入职培训的品牌项目,中航大家庭的新成员在这里第一次相逢并结缘,为今后在中航的共成长打下了坚实的基础。 “凤”代表着朝气蓬勃的新入职...
DEDE凤舞模板DEDE凤舞模板DEDE凤舞模板DEDE凤舞模板
“凤舞九天”自 2006 年始,已成为公司新员工入职培训的品牌项目,中航大家庭的新成员在这里第一次相逢并结缘,为今后在中航的共成长打下了坚实的基础。 “凤”代表着朝气蓬勃的新入职毕业生们,“舞”寓意着青春、...
DEDE凤舞模板非常好的DEDE模板很难找的,请下载
KX凤舞九天
通达信指标——凤舞九天主图(主图).doc
段凤舞教授治疗肿瘤经验探析,施国善,王有鹏,段凤舞为我国著名中医肿瘤学家,运用中医疗法治疗肿瘤疗效显著。现整理段先生治疗各种肿瘤的经验方,总结其治疗肿瘤的用药特点,
通达信指标——凤舞九天 黄金分割(主图).doc
集合当前流行软件功能的一个程序,包括:浏览器,媒体播放器,图象浏览,FLASH播放,相册管理,通讯录等功能,适用于一般操作,程序较小而实用。用DELPHI 7.0 编写,提供源代码。
集合当前流行软件功能的一个程序,包括:浏览器,媒体播放器,图象浏览,FLASH播放,相册管理,通讯录等功能,适用于一般操作,程序较小而实用。用DELPHI 7.0 编写,提供源代码。
集合当前流行软件功能的一个程序,包括:浏览器,媒体播放器,图象浏览,FLASH播放,相册管理,通讯录等功能,适用于一般操作,程序较小而实用。用DELPHI 7.0 编写,提供源代码。
MySQL数据库巡检手册
数据库审计修复方案
SQLiteExpert(数据库管理工具)
基于UG的“凤舞”汽车轮毂三维建模与有限元应力分析毕业论文.doc
一个简单,美观的音乐播放器
雷曼克斯 凤舞115S的专用写频软件,支持400-----520之间调频
资料包中包括《NHibernate 3 Beginner's Guide.pdf》【英文版】、《NHibernate.chm》【中文版】、《Packtpub.NHibernate.3.0.Cookbook.Oct.2010.pdf》【英文版】三本电子书。
人大金仓驱动8.6-8.2