数据库结构设计规范(20040512).doc_第1页
数据库结构设计规范(20040512).doc_第2页
数据库结构设计规范(20040512).doc_第3页
数据库结构设计规范(20040512).doc_第4页
数据库结构设计规范(20040512).doc_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据库设计规范sinoSoft状态:草案审批者:审批日期:软件开发规范数据库结构设计规范中科软股份有限公司版本 1.02004219编号:文档历史日期作者版本注释2004-2-19司义品1.0创建2004-5-12siyipin 一、标准词汇 为使文档可读性强,消除歧义,请使用标准词汇。 1、表(Table)严格区分“表”和“库”,禁止“代码库”等不规范用法,而应使用“代码表”等词汇。例如:应命名为门诊信息表,不能命名为门诊信息库。 2、表名(Table Name)避免“表名称”等用法。例如:应称门诊信息表名为AIDS _outpatient,不能称门诊信息表名称为AIDS _outpatient。 3、表中文名避免“汉字表名”、“表汉字名”等用法。例如:应称表中文名为门诊信息表,不能称表汉字名为门诊信息表。 4、字段(Field)字段为行和列的交。严格区分“列(column)”和“字段”的用法。 5、列名(Column Name)避免“字段名”等用法。例如:应称列名为NM_EMP,不能称字段名为NM_EMP。 6、列中文名避免“汉字列名”、“列汉字名”等用法。例如:应称列中文名为员工名称,不能称列汉字名为员工名称。 7、代码和编码代码与编码是有区别的,编码作动词使用,由用户自己确定编码规则,例如:应称邮政编码,不能称邮政代码。代码是在业务中已存在的名词,不需要再确定编码规则,例如:应称传染病代码,不能称传染病编码。 8、序号避免使用“编号”等用法,如果是系统自动产生的值,都应称序号。例如:流水序号。如果是用户自已编的号,一律称编号,不能称编码。 9、数据类型(Data Type)指data type时,一律用“数据类型”,不要简称“类型”等。 10、行(Row) 行和记录(record)含义相同,在文档中应尽量使用“行”。 11、标志 用于真、假的二意性判断,数据类型varchar2(1),值域统一使用大写的Y,N。避免使用“标识”等用法。 12、行数、列数 避免使用“记录数”、“字段数”等用法。二、数据库设计的CASE工具1、用Sybase公司的POWER DESIGN 9工具,进行数据模型设计(PDM)。2、确定各表的列内容(列名、列中文名、数据类型、长度、可空)、表的主键、索引,确定出各表之间的主外键关系。3、对一些标志字段或特殊用途的字段,需加上列值的说明,在table properties中的notes项和general的comment项中列出。4、表的用途说明及与其它表的关联也在notes项和general的comment项中列出。5、如果表间存在主从表关系,必须画出来。6、在不同表中用到的相同列名,一定要保证数据类型和宽度一致,必须用add方式。7、表中字段如果有缺省值,统一在notes项和general的comment项中列出8、表必须有主键。9、提取时:只提取主模型和自己负责的子模型。如果修改自己的表,可只提取子模型。提交时:先进行Check,只有无Error和Warning时方能提交,在提交前保留一个文件副本;只提交子模型;不允许修改别人的表,如果真的要修改别人的表,必须由表属主进行修改;相应,如果发现自己的表被别人修改了,必须先进行调查,确认修改人和修改原因是什么,如果自己认可,则由自己进行修改后提交,如果无法查出修改人或修改原因,则用自己的版本对其修改进行履盖。10、凡需提交新建子模型时,请预先告知管理员;11、注释:多多益善 (统一写在notes项和general的comment项中)表:反映的是什么?是从哪些表证中抽取出来的?列:反映的是什么?应注意事项等,尤其是对重点。对某些逆规范化的字段,一定要注明增加冗余列的原因。注释的参考原则:你画的PDM必须是能让别人看懂。现在是你最清楚,也最方便输入,这种形式也最容易被后续人员采用。如果别人看不懂你建的表和列名,他迟早会找到你。这类似于程序注释,其最好的输入时机是在你构思和编程时,虽然当时会觉得有些费时,但在总的工作时间上(对自己也是如此)是大大地节省了。或者你可以想出在更合适的时候输入这些在你大脑中的信息。12、Domain凡是需要建Domain的,请先和管理员联系,并提供所要求的数据类型要求,个人请不要自己去建立。14、每次修改PDM前,请先从库中提取。15、列中涉及以下有关数据项时,请采用domain进行类型定义:l 涉及销售额等金额的数值: Numeric(16,2)l 涉及比率、比例、分成的数值: Numeric(10,6)l 涉及货物单价的数值: Numeric(16,6)l 涉及人数、数量的数值: Numeric(10)l 涉及人名的: Varchar2(40)l 涉及单位名称的: Varchar2(100)l 地址、备注 VARCHAR2(200)l 日期时间 TIMESTAMPl 序号 VARCHAR2(20)日期格式为2004-02-09时间格式为2004-02-09 23:12:1016、如果在PDM中有定义规定列类型、宽度的domain,在进行这些列类型、宽度定义时必须使用相应的domain,不能对这些列的类型、宽度进行自由定义。17、在把PDM生成数据库表时,不要把表之间的关系带入,如外键、约束。三、表(Table)命名规则 表名和列名前缀一律使用大写字母。 1、表名表名的长度不超过32个字符,由英文字符和数字以及_组合而成。分为前缀和标题两部分。前缀与标题两部分之间使用_相连接。l 前缀:表名前缀根据表所操作的子系统进行分类,使用子系统名称的英文,长度为2-4字符。子系统与表名前缀的对应关系见附录1。 l 标题使用规范的英文单词缩写,可以附带数字,但尽量不用。标题的内容以词组或短语为单位,每词组或短语不得超过10个字符,词组与词组之间使用_相连接。 举例: 2、列名列名由长度不超过32个英文字符和数字的组合,使用规范的英文缩写,可以附带数字,但尽量不用。命名规则:(1)凡是参照码表的列,列名一律加DD_前缀。(2) 时间列名一律加TM_前缀(3) 日期列名一律加DT_前缀。(4) 名称列名一律加NM_前缀(5) 简称列名一律加AB_前缀(6)“XX序号”列,列名一律加SEQ_前缀,并说明序号产生规则。(7)“XX编号”列,列名一律加ID_前缀,并说明编号产生规则。(8)如果列的长度为变长,且为字符串,其数据类型必须为varchar2。(9)状态用STATUS,且为字符串,其数据类型必须为varchar2(10)。(10)为便于记忆,尽量使用标准的列名。具体标准列名及其数据类型见附录2。四、视图(View)命名规则 视图名=v_+子系统前缀+_+标题,其标题的命名规则同表名标题的命名规则。五、序列表(Sequence)命名规则(项目组审批)序列表命名规则=seq_+子系统前缀+_+标题。其标题的命名规则同表名标题的命名规则。在表中引用序列产生值的列应为“XX序号”。六、存储过程(Procedure)编写规范 1、存储过程(Procedure)的命名规则存储过程命名规则= p_ + 子系统前缀+_+标题。其标题的命名规则同表名标题的命名规则。 2、存储过程(Procedure)的编写要求(1)编写过程中应使用TAB键缩进。(2) 变量以 标识 + _ + 名称 命名。标识包括作用域及数据类型两部分, 名称使用规范的英文缩写。作用域:aArgument VariablelLocal Variable数据类型:blBooleancCharsdtsmalldatetimedDatedtdatetimelLongIintegernNumbervcVarchar(3)游标 (Cursor) 以 Cur_ + 名称 命名。(4)所有变量必须加注释。 (5) 每个功能段之间必须加注释。 (6) 存储过程最后都必须把临时表删除、游标释放。 七、触发器(Trigger)编写规范(项目组审批) 1、Insert触发器命名规则BEFORE型:trig_be_in_ + 表名AFTER型:trig_af_in_ + 表名 2、Update触发器命名规则BEFORE型:trig_be_up_ + 表名AFTER型:trig_af_up_ + 表名 3、Delete触发器命名规则BEFORE型:trig_be_de_ + 表名AFTER型:trig_af_de_ + 表名 4、触发器编写要求(1)编写过程中应使用TAB键缩进。 (2)变量以 标识 + _ + 名称 命名。标识包括作用域及数据类型两部分, 名称使用规范的汉语拼音缩写。作用域:aArgument VariablelLocal Variable数据类型:blBooleancCharsdtsmalldatetimedDatedtdatetimelLongIintegernNumbervcVarchar(3)游标 (Cursor) 以 Cur_ + 名称 命名。(4)所有变量必须加注释。(5)每个功能段之间必须加注释。八、索引(Index)命名规则 索引命名规则= in_+ 表名 + 有关列名。九、约束(Constraint)命名规则 1、表内约束命名规则(1)主键 (Primary Key Constraint):pk_ + 表名(2) 外键 (Foreign Key Constraint):(本项目不使用)fk_ + 表名 + 列名 + 被参照 (referenced) 表名 一般不会有两个外键参照同一张表。(3) 唯一键(Unique Constraint):(本项目不使用)uni_ + 表名 + 列名(4) 检查约束(Check Constraint):(本项目不使用)chk_ + 表名 + 列名(5) 缺省值约束 (Default Constraint):DEFAULT约束没有名字。 以上命名优先级由高到低,即当一个约束具有多个选项时,按优先级最高的选项命名。(6)唯一索引 (UNIQUE INDEX):in_u_ + 表名 + 列名十、数据存储分析 列出各子系统中数据增长快或大的表,并以月或年为单位,对其数据容量进行估计和分析,以方便以后的效率优化、备份和转储。表名总宽度1月记录数1月容量(k)1年记录数1年容量(k)备注十一、表名、列名申请 需要别的子系统增加表或列的情况,进行表名、列名申请,具体格式如下: 子系统名对方子系统名表名列名列中文名数据类型宽度可空主键索引备注十二、表结构设计包含以下内容:1、 表名2、 表中文名3、 表用途说明4、 列名5、 列中文名6、 列数据类型7、 列宽度8、 列可空9、 表主键10、 表索引11、 标志列值说明12、 列缺省值说明13、 特殊用途列说明十三、表结构设计注意事项(1) 如果表的数据是用户输入的,都需加上录入人员和录入日期列,且为非空;(2) 对需进行数据权限控制的表,都需加上控制机关代码列,且为非空;(3) 在进行表结构设计时,反复推敲每一个设计的列,包括是否主键、是否可空、列类型、宽度、索引等;(4) 日期段的列的中文名和英文名统一用日期始和日期止表示;(5) 号码段的列的中文名和英文名统一用XX起号和XX止号表示;(6) 标志列必须为非空;(7) 在NOTES中说明该表的用途和特殊列的用途说明,并列出相应的枚举值;(8) 对于非空的列,在插入时没有内容可填,用填入;(9) 对于序号列,必须要说明产生序号的规则; 以上有关数据库对象的建立请与DBA联系,不得擅自建立。附录1:表名前缀与业务功能对应表前缀业务/功能业务用表:公共卫生监测PSQ_ (Public sanitation quarantine)结核PHT_(phthisic)性病、爱滋病AIDS_霍乱CHO鼠疫RAT功能用表:AUT_权限管理REP_报表管理STA_查询统计PAR_参数维护,DD_代码表,PUB_公共模块每个业务模块的公共模块命名规则是:功能简称_业务模块_表的说明附录2:标准列名标准列名列汉字名数据类型DD_代码表中的代码Varchar2NM_代码表中的代码名称Varchar2(100)AB_代码表中的代码简称Varchar2(40)SEQ_某某序号Varchar2(20)TEL_电话号码Varc

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论