【数据库】基础知识--数据库设计八条原则

来源:互联网 发布:淘口令单 淘宝客 编辑:程序博客网 时间:2024/05/21 11:32
一、命名要简洁,并体现其应用或功能。如库名BxxCRM,Bxx为公司简称,CRM为Crm系统中的主数据库;为了防止被分析破解,表名建议采用子系统简写+功能单词首字母,如BOM子系统中:BOMMD,该表的字段名为MD001,MD002......MD022并预留五到十字段供扩展,对常用表还应定义十个以上的自定义字段,供客户自定制,自定义字段统一命名UDF01...UD99。表和字段都应该在数据字典作标准,实际开发时,用向导从数据字典生成具体应用数据绑定窗口和控件。

二、与第一条相关,在开发应用之前,一定必须先输入数据字典。这条是血泪教训(之前我的SB老板,我制定了一些标准,那Sb不执行不重视,现在公司快倒了吧!这是题外话)。没有字典,维护和表的共用都是问题,且直接影响开发效率!而且开发框架一般都和数据字典集成的!

三、嵌套关系的数据表,一定要在数据字典中注明,并备注好关键字段。注意这里嵌套并不一定是主从表。如工单表,一个成品对应一张工单,该成品由N个半成品制成,又是N张工单,N个半成品可能又可细分若干层的半成品。一般就由单头单身表二个表表示这样的数据,也可用一张表。

四、数据字典的设计,表和视图都必须记录在字典中;其对应的触发器和存储过程也必须备注中对应的表中;表、视图必须按模块分类管理。

五、严格控制存储过程的使用,这是血泪教训呀,我们公司的HR有600多个存储过程,三四个人二三批维护修正了十个月都没完全搞定。这就是开发时的随意和图修改方便造成的恶果,那个别人开发的HR在我看来是垃圾,我都不碰那个东西。建议,除非大数据量的处理,则不用存储过程!业务逻辑封装到程序业务类中,或将SQL语句放在配置文件或数据库中,动态装入执行。

六、尽量少用自增长字段,有人不以为然,认为自增长字段在表的数据量巨大时速度快。但它不稳定,特别是D7中支持不是太好,而且处理麻烦。更有甚者是其更新的问题,及需要读写该字段的值时更是麻烦,所以建议还是不用为妙。遇到大数据表时,多设计几个关键字段和索引应该问题不大! [ 注:在甲骨文数据库中,根本就不须自增长字段,因为它的每个表都有辅助列!]

七、表单设置,即实际应用时某些有单号(流水号)的表,如订单表,其单号由单据性质和流水号组成。建议:建一个单据设置表,统一保存这些表的表单设置和最大单号,也方便用户进行单号的设置,以及单号的生成(可以据设置表中保存的设置和最大单号值,用存储过程无冲突生成最大单号)。

八、对于每个应用系统都能用到的表放到另一库中,一般是系统配置表,如库命名SysDB。如果应用系统还包括一些大数据量的图片等多媒体数据表,应该放入第三个库DocDB中,这样可改善数据库的性能。

一下子,就想到的这几条,如果哪位朋友有好的经验也欢迎提出来大家共同提高!!
原创粉丝点击