分享

对.Net平台开发实践的总结.(2) - .NET教程 - CND8学院

 悟静 2011-02-10
二、数据库设计规范

表格分类与命名

数据表的分类

系统表   支撑业务模型的数据表,如流程模型、系统管理相关表。

业务表   产品提供的针对业务的通用功能模块相关表,如通用业务查询等。

用户表   用户二次开发使用的与具体业务相关的数据表。

数据表的命名

所有表格命名一律以字母“T”开头(Table),并且用实义单词以下划线“_”间隔。

系统表   系统表前缀为:TSYS_

业务表前缀为:TBIZ_

用户表由用户自行定义,但是建议不要与系统表和业务表的命名规则重复。

字段的命名

字段的命名规则参照代码标识符的命名规则,但是注意避开数据库的保留字。比如不要采用这样的字段名:index,field,password,id,Oracle,SQL等等。

对于涉及到技术核心的系统表,为了防止剖析,建议采用类似“F1,F2,F3……Fn”的方式命名。但是不要采用“F0”,因为这个名称在某些数据库中不被允许,比如Interbase。

索引的建立

索引是一把双刃剑,索引将提高查询的效率,但是却降低了insert/delete/update 的效率。

通常情况下,对数据的编辑频度和时限要求远远低于对数据库的查询要求,因此对于记录很多且频繁查询的数据表,必须建立索引。

大多数数据库为主键字段自动创建索引,注意为外键创建索引。

不要索引大字段,这样作会让索引占用太多的存储空间。

尽量不要索引频繁编辑的小型表。

identify字段不要作为表的主键与其它表关联,这将会影响到该表的数据迁移。如果考虑支持多数据库,建议主键采用程序生成的唯一值。

如果一个大型表需要频繁的做insert/delete/update操作,同时也需要做高并发量的查询,那么建议根据数据的访问频度对表作拆分,而后建立索引。

过程与函数

数据库厂商为了凸现自身的优势,都提供了丰富且个性化的过程与函数。

为了提升产品的伸缩性和数据无关性,请不要使用与特定数据库相关的过程与函数,也不推荐采用Store Procedure,建议使用应用服务器的中间层业务对象。

字段/域的定义

尽量避免使用Blob,如果一定要用,请不要索引blob,并且不要定义多个blob。

不要使用日期字段,改用字符串char(19)替代,如:2008-12-09 12:22:08。

对于确定长度的串,请固定字段类型的长度,如char(80),不要采用varchar。

对于值类型字段,请使用对应的数据库值类型,而不要用字符串。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多