做过MIS系统的都知道,一般说来,数据分为两种:基础数据和业务数据。一般说来,业务数据中肯定包含多个基础数据,比如简单地说一张机票数据,它就包括:货币类型、机场、航空公司等多个基础数据,这个时候,如果都要建立FK的话,是没有任何意义的,更不需要去考虑什么级联删除的,结果只有一个,严重影响效率,而且结构凌乱。但是在业务数据中,机票的基本信息和机票的价格构成了一个整体,这个时候如果不使用FK,那么在设计上是个失误,在实现的时候也绝对是个隐患!比如删除的时候,删除了机票,但是留下了机票的价格,大家可以相信,这是多么荒谬的事情。
所以,使不使用FK,关键要区分基础数据和业务数据。
另外,一个好的数据库设计并不是纯粹考虑数据库,而是来源于好的业务建模和对象建模。
首先基础数据的不存在并不能代表业务数据的不存在或者逻辑错误,其次,比如基础数据,是不能随意删除的,当然,我们有很多的控制方法,比如失效等什么的。对于基础数据不用外键是综合各方面考虑的,不是说不能用外键,但是用了外键将导致一个非常可怕的问题,就是数据访问的问题,每访问一个业务数据,那么意味着有可能要join访问10个以上的表,效率会严重降低。
好的数据库设计不能是没有一点冗余,或者说严格符合关系要求,因为实际的应用是面向对象的,在将面向对象的数据转换为面向关系的数据时,是需要这样做的。从逻辑上说,一个基础数据的不存在,并不代表什么,比如说,你没有输入一个国家或者删除一个国家,并不代表没有了这个国家。而业务数据就不同了,如果你删除了一张业务数据,那么就代表了该业务数据已经不存在,而此时再存在与之相关的业务数据是不符合逻辑的(比如一个法规作废,那么与之相关的法规就都必须受影响)。
好的数据库设计来自于好的对象设计。
分享到:
相关推荐
【凤舞天骄TB商店修改器V1.0 DELPHI源代码】是一个针对网络游戏《凤舞天骄》中的商店系统进行修改的工具,由DELPHI编程语言编写。DELPHI是Borland公司开发的一种面向对象的、高效的Windows应用程序开发环境,它基于...
国航凤舞九天入职培训结业试题 “凤舞九天”自 2006 年始,已成为公司新员工入职培训的品牌项目,中航大家庭的新成员在这里第一次相逢并结缘,为今后在中航的共成长打下了坚实的基础。 “凤”代表着朝气蓬勃的新入职...
"凤舞九天社区浏览器(1.01)"是一款集成了多种常用功能的综合性应用程序,主要特点是将浏览器、媒体播放器、图像查看器、Flash播放器、相册管理和联系人管理等工具融为一体,旨在为用户提供便捷的一站式操作体验。...
DEDE凤舞模板是一款专为DEDE CMS设计的高质量网站模板,它以其独特的设计风格和良好的用户体验受到了许多网站管理员的青睐。DEDE CMS,全称是 Dedecms,是一款基于PHP+MySQL技术开发的开源内容管理系统,广泛应用于...
“凤舞九天”自 2006 年始,已成为公司新员工入职培训的品牌项目,中航大家庭的新成员在这里第一次相逢并结缘,为今后在中航的共成长打下了坚实的基础。 “凤”代表着朝气蓬勃的新入职毕业生们,“舞”寓意着青春、...
"凤舞九天社区浏览器"是一款集成了多种实用功能的综合性软件,主要针对日常操作设计,特点是体积小巧但功能丰富。这款程序的核心是其浏览器组件,它不仅能够浏览网页,还整合了媒体播放器、图像查看器、Flash播放器...
【DEDE凤舞模板】是基于DEDE CMS(织梦内容管理系统)设计的一款网站模板,专为提升网站视觉效果和用户体验而打造。DEDE CMS是中国较为流行的内容管理系统之一,以其强大的功能、易用性和灵活性受到许多网站开发者的...
### 数据库审计修复方案——McAfee的MySQL插件 #### 概述 在现代企业的IT基础设施中,数据库是至关重要的组成部分,它不仅承载着大量的业务数据,还直接关系到企业的核心竞争力。为了确保数据库的安全性和合规性,...
"凤舞九天社区源代码"是一个以DELPHI 7.0编程语言编写的程序,它集成了一系列流行的功能,旨在提供一个全方位的用户体验。这个程序包含了一个浏览器、媒体播放器、图像查看器、FLASH播放器、相册管理和通讯录等模块...
段凤舞教授是我国著名的中医肿瘤学家,他在中医治疗肿瘤领域有着丰富的经验和显著的疗效。段教授通过多年的研究和实践,总结出了一系列治疗不同肿瘤的经验方,这些方药经过多人次的实践验证,显示出一定的疗效,尤其...
KX凤舞九天
"凤舞九天主图"是通达信中一个典型的用户自定义技术分析指标,主要帮助用户判断股价的趋势和可能的转折点。这个指标结合了黄金分割理论,通过计算历史最高价(高1)和最低价(低1)之间的黄金分割比例来预判未来的...
"数据库"标签表明了这个话题的核心内容,即数据存储和管理的技术。 总的来说,人大金仓驱动8.6-8.2涉及的知识点包括但不限于:Java JDBC驱动、数据库版本管理、数据库性能优化、新功能的引入、安全性设计、稳定性...
本文档将深入探讨通达信软件中的自定义指标——“凤舞九天 黄金分割”,并介绍其如何通过黄金分割理论来预测股票市场的支撑位和阻力位。 黄金分割是一个起源于古希腊的数学比例,它在自然界、艺术作品和建筑设计等...
《MySQL数据库巡检手册》是一本专注于MySQL数据库管理和维护的专业指南。这本手册旨在帮助数据库管理员(DBA)以及IT专业人员系统地进行MySQL数据库的日常检查与优化工作,确保数据库系统的稳定、高效运行。MySQL...
SQLiteExpert是一款强大的SQLite数据库管理工具,专为开发者和普通用户设计,提供了一种直观且高效的方式来操作和管理SQLite数据库。SQLite是一种轻量级、自包含的数据库引擎,广泛应用于嵌入式系统、移动应用以及...
标题"python写的音乐, 凤舞九天 / 迷你音乐"暗示了我们这里讨论的是一个使用Python编写的音乐播放器项目,名为"凤舞九天 / 迷你音乐"。它可能是开发者通过Python的多媒体库,如pygame或pygame.mixer,来实现的一个...
基于UG的“凤舞”汽车轮毂三维建模与有限元应力分析毕业论文.doc
雷曼克斯,作为知名的无线电设备制造商,推出了专为凤舞115S设计的写频软件——雷曼克斯X15S写频软件。这款软件的独特之处在于其对400MHz至520MHz频率范围内的调频支持,为用户提供了一个强大的工具,以满足他们在...
《Navicat for MySQL:一款强大的数据库管理工具》 Navicat for MySQL是一款深受数据库管理员和开发人员喜爱的数据库管理工具,专为MySQL数据库设计。它提供了直观的图形用户界面,使得用户能够轻松地进行数据库的...