3.2.2-数据库设计规范.docx_第1页
3.2.2-数据库设计规范.docx_第2页
3.2.2-数据库设计规范.docx_第3页
3.2.2-数据库设计规范.docx_第4页
3.2.2-数据库设计规范.docx_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

1、XXXXXX产品机密文件XXXXXX产品数据库设计规范日期:201X年XX月 在每张实体表的数据增删改后面都需要紧跟容错处理(出错回滚事务);事务的范围尽量小,中间处理过程(比如对传入XML数据的解析、临时表等操作),可以先不开启事务。5.8编写规范 保留字:类似select等保留字,都小写。 缩进对齐:敲两个空格键进行缩进对齐,不允许使用Tab键进行缩进(就算是将Tab键设置为只缩进2格,也不要使用)。 编写环境字体:最好改为“宋体9号或10号”,默认的字体(MSShellDig,9号)看不出缩进对齐效果。 每行字符数(包括空格):不要太多,最好不要超过200个字符,多了分行。 注释:尽量详

2、细,涉及到复杂逻辑和算法的地方必须加上。5.9注意事项 存储过程中,实体表名和字段名也都大写,特别是返回的数据集中的表名和字段,必须大写。6. 视图、触发器和函数6.1视图命名与存储过程命名一样,只是前缀由“usp_”改为“uvw_”。6.2触发器命名“utr_”+表名,一个表中有多个触发器时,“utr_”+表名+功能名。6.3函数命名与存储过程命名一样,只是前缀由“usp_”改为“ufn_”。7. 注意事项A存储过程1. 为了减少移植的困难,不要使用存储过程。如必须使用,需审批。7.1 B触发器尽可能的不使用触发器,尽量通过程序实现,有利与多数据库移植和负载的调配。1. 不允许动态创建触发器

3、。7.2 C视图使用静态视图,不允许动态创建视图。1. 视图中不准包含orderby语法,影响效率。2. 尽量不要出现视图嵌套试图的情况D索引1. 为了保证索引具有提高效率的作用,估计记录数不大于100的表一律不允许建索引。2. 只用于distinct或gro叩by子句引用的列,不用建立索引。3. 对于数据值变化不大的列,比如只有yes和no,那么不要建索引,否则效率降低。4. 不允许动态创建索引。5. 当创建复合索引时,复合索引的列不超过7列,复合索引的列的总长度不能超过128字节。6. 在复合索引中,所有的列必须来自同一个表中,不能跨表建立复合列。7. 复合索引为多列,同复合主键一样将变化

4、显著的列放到复合索引的首位。8. 在复合索引中,列的排列顺序是非常重要的。例如在(C0L1,C0L2)上的索引与在(C0L2,COLD上的索引是不相同的,因为两个索引的列的顺序不同。7.3 E表及外键表的具体设计规范原则。以第三范式的标准严格设计,然后再考虑开发与运行的效率进行反范式规范的冗余设计。1. 不允许动态创建表、约束、外键。2. 每个表必须有主键(primarykey)。一个表的字段在引用另外一个表带编码、名称的字段时,只需引用主键字段。3. 复合主键必须遵守以下规则:越能成为唯一标识的字段(同值重复少)就越放在前面。4. 没有必要对表中的每一个引用建立主外键关系。5. 对于已经存在

5、的表,如果要增加字段,建议一般使用可空字段,如果是非空字段,请给出default值。只对关系非常密切的表建立外键关系,比如主子表,来源去向表。6. 外键的建立的基本原则是不能跨模块建立外键关系。F函数规范1. 不允许使用自定义函数。版本控制:日期版本修订说明修改内容修订人2017-12V1.0Created全部1. 概述51.1 支持数据库及版本51.2 数据库文档的管理5表62. 1命名62.2 主键62.3 与“个人档案”有关的业务表62.4 系统表62.5 注意事项6字段62. 1命名63.2 数值字段63.3 必填字段63.4 单选字段63.5 多选字段73.6 固定字段73.7 常见

6、字段77.1“人名、电话”字段73.7.2“系统内部人员”字段83.7.3“单位、机构”字段83.7.4“备注、说明”字段8索引83. 1命名84.2 常见设置索引的字段84.3 注意事项8存储过程82. 1命名85.2参数命名92.3 游标命名92.4 注释头95.5返回信息95.6 错误处理95.7 事务使用95.8 编写规范105. 9注意事项10视图、触发器和函数103. 1视图命名106.2触发器命名104. 3函数命名10注意事项104. 1A存储过程107.2 B触发器107.3 C视图107.4 D索引107.5 E表及外键117.6F函数规范111.概述本手册涉及两个方面的内

7、容:A、指导软件开发过程中对数据库设计文档的管理。数据库设计文档主要包括以下部分: 数据库设计的概念数据模型,即CDM文档数据库设计的物理数据模型,即PDM文档 由PDM生成的数据库建库脚本。 其他不在PDM文档中表达的数据库脚本,比如视图、触发器、索引等。B、规范数据库设计文档中的内容,如命名规则、数据类型的使用等。1.1支持数据库及版本目前主要支持ORACLE,DB2,SQLSERVER三种数据库.操作系统ORACLE81(8.1.7)ORACLE91(9.0.1>9.2.0.1)WinNTJVWin2000VVSunSolaris2.6orlateVVIBMAIX4.2andlat

8、erVVSCOUnixWare7.0JVLinux44HPUnix11.00orlaterVV操作系统SQLSERVER7.0SQLSERVER2000WinNTVVWin2000VV操作系统DB2(7.2)WinNTVWin20004SunSolaris2.6orlater.VIBMAIX4.2andlaterVLinuxkernel2.2.12orhigher;VHPUnix11.00orlaterV1.2数据库文档的管理1、采用PowerDesigner作为数据库设计工具。2、使用VisualSourceSafe6.0作为数据库设计文档的版本控制工具,路径:appserverncdata

9、。3、凡是用在PDM里面表达的数据库设计,统一由数据库小组产生厂商数据库的建库脚本。4、PDM里面有关各种数据库对象的comment字段不能为空,必须对各种数据库对象作出有助与理解的注释。2. 表2.1命名全为大写,为相关业务表单功能的简拼,一般为分段式的,比如:个人核心档案,它属于“健康档案”中的“个人”部分,因此命名为:DA_GR_HXDAo2.2主键任何表必须有主键字段,尽量设置为单主键,主键字段一定是排在最前面的。2.3与“个人档案”有关的业务表必须要有“GRBJH”字段(varchra(50),且不能为空,已便与通过“个人核心档案”将所有业务串联起来。2.4系统表 公用系统表:以“S

10、YS1”开头。 业务系统表:以“SYS2_”+“业务系统简称”+“含义简称”(如:SYS2_FB_GGBZ)o2.5注意事项 表不定义主键! 直接手工修改表名(容易造成“表名”与原来建好的“主键名、索引名”的不匹配)!3. 字段3.1命名全为大写,为简拼。3.2数值字段对于数值数据,尽量能与实际大小接近,已达到控制垃圾数据进入的目的,比如身高,一般只精确到一位小数,定义为:decimal(4,l),而不应该定义为decimal(10,l),如年龄,定义为tinyint,就比定义为smallint好。3.3必填字段确定为必填字段的,应将其设置为“非空”。3.4单选字段不可修改的:数据库中存代码的

11、,统一定义为varchar(2)(除非特殊情况需要加长的,可定义为varchar(4域varchar(lO)等,比如:本身“代码”长度就超过2的,自然不能只定义为varchar(2)o 可修改的:存名称,根据具体情况定义为varchar(20)>varchar(30)>varchar(50)等。3.5多选字段不可修改的:数据库中存代码的,肯定也存名称,代码字段定义为:*DM,varchar(30),名称字段定义为:*MC,varchar(lOO),如家族史,则定义为:JZSDMvarchar(3O),JZSMCvarchar(100)o 可修改的:存名称,直接定义为名称简拼,一般定

12、义为varchar(100)或varchar(50)o3.6固定字段所有的业务表,最后11个字段皆为(由于框架将“操作人员编码”由int改为varchar(50),我们业务表中的相关字段也跟着调整为varchar(50):记录状态JLZTchar(1)0正常9删除登记日期DJRQdatetime登记人员编码DJRYBMvarchar(50)登记人员姓名DJRYXMvarchar(30)登记机构代码DJJGDMvarchar(30)登记机构名称DJJGMCvarchar(60)修改日期XGRQdatetime修改人员编码XGRYBMvarchar(50)修改人员姓名XGRYXMvarchar(3

13、0)修改机构代码XGJGDMvarchar(30)修改机构名称XGJGMCvarchar(60)SYS上传标志SYSSCBZchar(1)0未上传,1已上传(新增、修改、删除时改为0,上传时改为1)SYS上传时间SYSSCSJdatetime上传时改为getdate(),带时间3.7常见字段 个人保健号:GRBJH,varchar(50)o 流水号:LSH,varchar(50)o 邮编:统一定义为varchar(6)o3.7.1“人名、电话”字段如“母亲姓名、父亲姓名、联系电话”等:统一定义为varchar(30)。3.7.2“系统内部人员”字段“检查医生、建档人员”,考虑到工作量统计,一般

14、从“系统操作人员”中取值的,要同时存其“人员编码和姓名”,命名和长度参照“登记人员编码、登记人员姓名”。比如:检查医生编码JCYSBM(varchar(50),检查医生姓名JCYSXM(varchar(30)o3.7.3“单位、机构”字段如“检查单位、接产医院”等,具体参照,固定字段“登记机构代码、登记机构名称”的命名和长度设置。 代码:叫“不要叫“料BM”,长度统一定义为varchar(30)o 名称:长度统一定义为varchar(60)o7.4“备注、说明”字段一般定义为varchar(100);一些输入内容比较多的,前台会摆放memo控件的,一般定义为varchar(255),也可以根据

15、实际情况加大为varchar(500)或varchar(1000)o索引4.1命名 主索引:也就是主键,默认的就是“PK_”+表名,不要去修改它。 单索引:"IX_”+表名+字段名。 联合索引:“IX/+表名+字段名(按顺序排列,中间不用分隔符)。比如:DA_GR_HXDA表,在“XM、XB、CSRQ”上建一个联合索引,则索引名为IX_DA_GR_HXDA_XMXBCSRQ。4.2常见设置索引的字段 个人保健号: 日期:4.3注意事项 索引并非越多越好,最好只在最常查询的字段上建,同时一张表上最好不要超过5个索引。 索引建在短字段上效率更高(比如:整型、日期型或短字符型上)。 由于系

16、统默认索引是“升序”排列,但基于业务考虑,经常是查询“末次日期”(比如“末次随访日期”),应该根据情况把“日期”字段上的排序规则改为“倒序”。3. 存储过程5.1命名“usp_”+子系统名名称,名称一般为分段式的,首字母大写。例如:usp_Jkda_Gr_AddHxda为“健康档案”中“个人档案”的新增核心档案的存储过程。5.2参数命名“”+变量类型缩写(小写)+字段名或参数功能名(首字母大写)。变量类型缩写,字符型:s,整形:n,浮点型:f,时间日期型:do若参数的值要赋到字段中去,则该参数的名称就是字段名即可,只是字段名换为首字母大写。若字段名为XM,则参数名即为sXmo5.3游标命名“cs”+光标功能名(首字母大写)。例如:存个人保健号的游标,csGrbjh。5.4注释头版本号i.o.o.o.o创建时间作者版权上海金仕达卫宁软件股份有限公司描述功能说明调用的uspl调用实例修改历史*1*1*!*/大的修改一次,版本号增加。5.5返回信息数据操作型:前台调用,完成数据的“新增、修改、删除”等操作的,反馈执行结果的,其结果集的第一列:字段名为RST,值为“T”表示执行成功,“F”执行失败。第二列:字段名为MSG,值为“输出提示信息”。对于“新增”,有可能还需要反馈主键值的,放在第三列:字段名为keyvalue或主键字段名,操作成功时值为具体

温馨提示

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

评论

0/150

提交评论