用约束而非商务法则强制数据完整性
假如你凭据商务法则来处理惩罚需求,那么你该当查抄商务条理/用户界面:假如商务法则今后产生变革,那么只需要举办更新即可。如果需求源于维护数据完整性的需要,那么在数据库层面上需要施加限制条件。假如你在数据层确实回收了约束,你要担保有步伐把更新不能通过约束查抄的原因回收用户领略的语言通知用户界面。除非你的字段定名很冗长,不然字段名自己还不足。
只要有大概,请回收数据库系统实现数据的完整性。这不单包罗通过尺度化实现的完整性并且还包罗数据的成果性。在写数据的时候还可以增加触发器来担保数据的正确性。不要依赖于商务层担保数据完整性;它不能担保表之间(外键)的完整性所以不能强加于其他完整性法则之上。
漫衍式数据系统
对漫衍式系统而言,在你抉择是否在各个站点复制所有数据照旧把数据生存在一个处所之前应该预计一下将来 5 年可能 10 年的数据量。当你把数据传送到其他站点的时候,最亏得数据库字段中配置一些标志。在目标站点收到你的数据之后更新你的标志。为了举办这种数据传输,请写下你本身的批处理惩罚可能调治措施以特按时距离断运行而不要让用户在天天的事情后传输数据。当地拷贝你的维护数据,好比计较常数和利钱率等,配置版本号担保数据在每个站点都完全一致。
强制指示完整性(参照完整性?)
没有好步伐能在有害数据进入数据库之后消除它,所以你应该在它进入数据库之前将其剔除。激活数据库系统的指示完整性特性。这样可以保持数据的洁净而能迫使开拓人员投入更多的时间处理惩罚错误条件。
干系
假如两个实体之间存在多对一干系,并且尚有大概转化为多对多干系,那么你最好一开始就配置成多对多干系。从现有的多对一干系转变为多对多干系比一开始就是多对多干系要可贵多。
回收视图
为了在你的数据库和你的应用措施代码之间提供另一层抽象,你可觉得你的应用措施成立专门的视图而不必非要应用措施直接会见数据表。这样做还便是在处理惩罚数据库改观时给你提供了更多的自由。
给数据保有和规复拟定打算
思量数据保有计策并包括在设计进程中,预先设计你的数据规复进程。回收可以宣布给用户/开拓人员的数据字典实现利便的数据识别同时担保对数据源文档化。编写在线更新来“更新查询”供今后万一数据丢失可以从头处理惩罚更新。
用存储进程让系统做重活
办理了很多贫苦来发生一个具有高度完整性的数据库办理方案之后,我抉择封装一些关联表的成果组,提供一整套通例的存储进程来会见各组以便加速速度和简化客户措施代码的开拓。数据库不可是一个存放数据的处所,它也是简化编码之地。
利用查找
节制数据完整性的最佳方法就是限制用户的选择。只要有大概都应该提供应用户一个清晰的代价列表供其选择。这样将淘汰键入代码的错误和误解同时提供数据的一致性。某些民众数据出格适合查找:国度代码、状态代码等。
第 5 部门 - 各类小能力
文档、文档、文档
对所有的快捷方法、定名类型、限制和函数都要体例文档。
回收给表、列[字段]、触发器等加注释的数据库东西。是的,这有点费事,但从久远来看,这样做对开拓、支持和跟踪修改很是有用。
取决于你利用的数据库系统,大概有一些软件会给你一些供你很快上手的文档。你大概但愿先开始在说,然后得到越来越多的细节。可能你大概但愿周期性的预排,在输入新数据同时跟着你的希望对每一部门细节化。不管你选择哪种方法,总要对你的数据库文档化,可能在数据库自身的内部可能单独成立文档。这样,当你过了一年多时间后再回过甚来做第 2 个版本,你出错的时机将大大淘汰。
利用常用英语(可能其他任何语言)而不要利用编码
为什么我们常常回收编码(好比 9935A 大概是‘青岛啤酒’的供给代码,4XF788-Q 大概是帐目编码)?来由许多。可是用户凡是都用英语举办思考而不是编码。事情 5 年的管帐或者知道 4XF788-Q 是什么对象,但新来的可就不必然了。在建设下拉菜单、列表、报表时最好凭据英语名排序。如果你需要编码,那你可以在编码旁附上用户知道的英语。
生存常用信息
让一个表专门存放一般数据库信息很是有用。我常在这个内外存放数据库当前版本、最近查抄/修复(对 FoxPro)、关联设计文档的名称、客户等信息。这样可以实现一种简朴机制跟踪数据库,当客户诉苦他们的数据库没有到达但愿的要求而与你接洽时,这样做对非客户机/处事器情况出格有用。
测试、测试、重复测试
成立可能修订数据库之后,必需用用户新输入的数据测试数据字段。最重要的是,让用户举办测试而且同用户一道担保你选择的数据范例满意贸易要求。测试需要在把新数据库投入实际处事之前完成。
查抄设计
在开拓期间查抄数据库设计的常用技能是通过其所支持的应用措施原型查抄数据库。换句话说,针对每一种最终表达数据的原型应用,担保你查抄了数据模子而且查察如何取出数据。
Microsoft Visual FoxPro 设计能力
对巨大的 Microsoft Visual FoxPro 数据库应用措施而言,可以把所有的主表放在一个数据库容器文件里,然后增加其他数据库表文件和装载同原有数据库有关的非凡文件。按照需要用这些文件毗连到主文件中的主表。好比数据输入、数据索引、统计阐明、向打点层可能当局部分提供报表以及种种只读查询等。这一法子简化了用户和组权限的分派,并且有利于应用措施函数(存储进程)的分组和分别,从而在措施必需修改的时候易于打点。