家庭医生信息管理平台数据库设计说明书
创业软件股份有限公司-上海研究院-项目管理规范文档
PAGE
PAGE2 / NUMPAGES18
家庭医生信息管理平台
数据库设计说明书
客户项目经理:
日 期:
创业项目经理:
日 期:
修改历史
日期
版本
作者
修改内容
评审号
更改请求号
目 录
TOC \o "1-3" \h \z \u 一. 概述 4
二. 支持数据库及版本 4
三. 数据库文档的管理 5
四. 命名规范 5
五. 数据类型 7
六. 注意事项 8
PAGE 4
数据库设计规范
注意:
标有 ★ 的条目表示强制性规范。
概述
本手册涉及两个方面的内容:
A、指导软件开发过程中对数据库设计文档的管理。数据库设计文档主要包括以下部分:
数据库设计的概念数据模型,即CDM文档
数据库设计的物理数据模型,即PDM文档
由PDM生成的数据库建库脚本。
其他不在PDM文档中表达的数据库脚本,比如视图、触发器、索引等。
B、规范数据库设计文档中的内容,如命名规则、数据类型的使用等。
本手册会随着NC的发展、开发技术的提高、各种系统平台的更新而逐步调整。
支持数据库及版本
目前主要支持ORACLE ,SQLSERVER三种数据库.
操作系统
ORACLE 10g
ORACLE 11g
Win 2003
√
√
Win 2008
√
√
Sun Solaris 2.6 or late
√
√
IBM AIX 4.2 and later
√
√
SCO UnixWare 7.0
√
√
Linux
√
√
HP Unix 11.00 or later
√
√
操作系统
SQL SERVER 2005
SQL SERVER 2008
Win 2003
√
√
Win 2008
√
√
数据库文档的管理
采用PowerDesigner 作为数据库设计工具。
使用SVN 6.0 作为数据库设计文档的版本控制工具,路径: \\appserver\ncdata。★
凡是用在PDM里面表达的数据库设计,统一由数据库小组产生厂商数据库的建库脚本。不在PDM中表达的SQL语句需要设计人员自己翻译为不同厂商数据库的建库脚本。★
PDM里面有关各种数据库对象的comment 字段不能为空,必须对各种数据库对象作出有助与理解的注释。★
命名规范
1、模块名称规则表,一般数据库表设计的前缀默认采用以下规则,以下表的详细信息请参考NC规范中的NC产品形态文档.
模块名称
系统规则名
模块名称
系统规则名
模块名称
系统规则名
UAP
系统管理
sm
公用数据
pub
中间件
mw
数据库
dbs
IUFO
iufo
报表查询
qr
模板管理
tp
平台
pf
基础数据
bd
财务
总账管理
gl
现金银行
cs
应收管理
ar
应付管理
ap
报帐中心
ep
固定资产
fa
递延资产
aa
筹投资管理
fim
预算管理
tb
项目成本
jc
存货核算
ia
供应链
采购管理
po
销售管理
so
库存管理
ic
渠道管理
prm
分销资源计划
drp
供应商管理
vrm
合同管理
ct
委外加工
sc
发运管理
dm
制造
设备管理
fm
成本管理
Cm
制造基础数据
pd
需求管理
Mm
生产计划
mm
生产定单
mm
车间作业
Sf
能力计划
crp
装配计划
mm
质量管理
质量管理
Qc
金融软件
银行前置系统
bcd
产品成本
FC
人力成本
HC
量本利分析
cvp
所有表、视图、触发器、索引、函数、约束、主外键必须指定名称,规则如下:
对于各种数据库对象的命名规则,目前的NC系统中存在两种风格,采用拼音和采用英文的,目前这两种规范都可以,但是注释一定要清楚.
数据库对象
规则
最大长度
例子
表
系统规则名_名称
18
sm_firm
字段名
18
acc_code, acc_name
视图
v_系统规则名_名称(*)
18
ac_accsub
触发器
t_表名_名称(*)
18
t_firm
函数
f_名称
18
f_fun()
Check
ck_表名_字段名(*)
18
ck_gl_accsub_code
主键
pk_表名
18
pk_gl_accsub
外键
fk_表名_字段名(*)
18
fk_gl_vouch_accsub_code
索引
i_表名_字段名(*)
18
i_gl_accsub_code
表空间
ts_名称
18
ts_sys
(*)注:由于数据库对象之间的命名规则与最大长度限制可能造成命名存在冲突。如存在,可以通过缩减表名或字段字符来实现。
表空间名约定
表空间
使用范围
ts_sys
系统表空间
ts_data
标准操作表
ts_view
标准视图操作
ts_index
标准操作表索引
ts_rbs
标准操作回滚段
ts_temp
标准操作临时段
ts_trig
标准触发器操作
3、所有的外键、约束、索引、函数、触发器、存储过程名不允许重复。
4、业务中主子表的命名规则:系统规则名_名称 或系统规则名_名称_h,子表:系统规则名_英文名称_b。
5、业务中主子子表的命名规则:系统规则名_英文名称_h, 系统规则名_英文名称_b,系统规则名_英文名称_bs。
数据类型
可用数据类型
类型
范围
Sqlserver
Oracle
字符型
长度固定
Char
Char
可变字符型
长度不固定
Varchar
Varchar2
16位整型
-32,768~32,767
Smallint
Smallint
32位整型
-2,147,483,648 ~2,147,483,647
Int
Int
精确数值型
pppppppppppppp.ss
Decimal(p,s)
Number(p,s)
近似数值型
-1.79E+308 ~1.79E+308
Float
Float
日期型
yyyy-mm-dd。
Char(10)
Char (10)
日期时间型
yyyy-mm-dd hh_mm_ss
Char(19)
Char (19)
时间戳
System date and time
date
datetime
布尔型
‘Y’ or ‘N’
Char(1)
Char (1)
ID/PK
Char(20)
Char (20)
大文本
text
Clob
二进制
image
Blob
业务数据类型规范
这个规范需要落实到CDM/PDM的domain的标准化上.
类型
规则(使用SQL Server描述)
编码类
字符型。依据规则确定用char还是varchar。
名称类
字符型。依据规则确定用char还是varchar。
布尔类
Char(1),Y/N
状态类
Smallint,用0,1,2,3……表示
级次类
16位整型Smallint
金额类
精确数值型,一般为decimal(20,8)
大金额
32,10
系统标识类
估计可能最大值<32,767: 16位整型smallint
估计可能最大值>32,767: 32位整型 smallint
摘要备注类
可变字符型。需要定义几种:200,1000
价格数量类
精确数值型,一般为decimal(20,8)
单价类
精确数值型,一般为decimal(20,8)
比率类
精确数值型,一般为decimal(20,8)
不要用SQL 保留字来命名表、视图、字段、索引。数据库的关键字见附录。
字符型字段的确定。长度固定用char,不固定用varchar。
不要将Null 与 空串“”视为相同。在不同的数据库中对这两者的理解是不相同的。在Oracle中空串与Null理解一样。如果碰到这种情况统一用Null.
注意事项
A 存储过程
为了减少移植的困难,不要使用存储过程。如必须使用,需审批。
B 触发器
尽可能的不使用触发器,尽量通过程序实现,有利与多数据库移植和负载的调配。
不允许动态创建触发器。
C 视图
使用静态视图,不允许动态创建视图。
视图中不准包含order by 语法,影响效率。
尽量不要出现视图嵌套试图的情况
D 索引
为了保证索引具有提高效率的作用,估计记录数不大于100的表一律不允许建索引。
只用于distinct或group by子句引用的列,不用建立索引。
对于数据值变化不大的列,比如只有yes和no,那么不要建索引,否则效率降低。
不允许动态创建索引。
当创建复合索引时,复合索引的列不超过7列,复合索引的列的总长度不能超过128字节。
在复合索引中,所有的列必须来自同一个表中,不能跨表建立复合列。
复合索引为多列,同复合主键一样将变化显著的列放到复合索引的首位。
在复合索引中,列的排列顺序是非常重要的。例如在(COL1,COL2)上的索引与在(COL2,COL1)上的索引是不相同的,因为两个索引的列的顺序不同。
E 表及外键
表的具体设计规范原则。
以第三范式的标准严格设计,然后再考虑开发与运行的效率进行反范式规范的冗余设计。
不允许动态创建表、约束、外键。
每个表必须有主键(primary key)。★
一个表的字段在引用另外一个表带编码、名称的字段时,只需引用主键字段。
复合主键必须遵守以下规则:越能成为唯一标识的字段(同值重复少)就越放在前面。
没有必要对表中的每一个引用建立主外键关系。
对于已经存在的表,如果要增加字段,建议一般使用可空字段,如果是非空字段,请给出default值。★
只对关系非常密切的表建立外键关系,比如主子表,来源去向表。
外键的建立的基本原则是不能跨模块建立外键关系。★
F 函数规范
不允许使用自定义函数。
G 安装盘数据库脚本规范
建库脚本文件分类:
删除表类:包括模块所有表的drop语句。
表结构类:包括模块所有表的建表语句、主键定义以及check约束。还包括数据类型以及规则定义。
外键、视图、函数、索引类(简称外键类):包括模块所有的外键、视图、索引、函数。包括drop语句。
触发器、存储过程类: 包括模块的触发器以及存储过程。包括drop 语句。
数据类:包括模块节点以及初始化数据;包括删除数据命令。包括delete语句。
安装盘脚本命名规则:
删除表类
表结构类
外键类
触发器
数据类
系统规则名_00.sql
系统规则名_01.sql
系统规则名_02.sql
系统规则名_03.sql
系统规则名_04.sql
书写格式:
字母全部用小写(值除外)。注释用破折号“--”
遵循各个数据库SQL执行标准。例如,每条DDL以及DML语句结束符采用如下符号。
Oracle
Sqlserver
DDL /
DML ;
go
Insert 语句使用单行插入模式。
系统数据表结构设计
7.1逻辑结构设计
注:表和表字段命名规范:
表名的定义:
规范格式:系统名_表名(字母全部大写)
比如,工作计划管理系统中的某个表定义为:WORKPLAN_TASK;
表字段的定义:
规范格式:表名+字段名称(首字母大写),以避免字段重名出现在不同表中。
比如,表WORKPLAN_TASK中的字段标识Id定义为:TaskId;
表字段长度的定义:
规范格式:长度一般为8的整数倍;
比如,VARCHAR的长度可为8或16或24或32或64等;
表字段类型为日期型的定义:
规范格式:一般日期型的字段设为VARCHAR,且长度一般为24(已精确到毫秒)
公共表名的定义:
规范格式:PUBLIC_表名(字母全部大写)
比如,各个子系统都会用到的公共表,如角色或操作日志表可定义为:PUBLIC_ROLE,PUBLIC_OPERATELOG;
公共卫生中心任务列表(GWZX_TASKLIST)
康复治疗任务(KFZL_RW)
3 康复治疗任务明细(KFZL_RWMX)
4 康复治疗执行明细(KFZL_RWMX_ZXMX)
5 康复治疗阶段小结(KFZL_RWMX_JDXJ)
6 租赁申请单(QCZL_ZLSQD)
7 设备租赁明细(QCZL_ZLMX)
8 设备信息表(QCZL_SBXX)
9 续租申请单(QCZL_XZSQD)
10 任务列表(HLZX_TASKLIST)
11 任务单执行表(HLZX_TASKEXECUTE)
12 护理指标表(HLZX_ZB)
13 支持中心任务单(ZCZX_TASKLIST)
14 支持中心任务单执行单明细表(ZCZX_TASKEXECUTEDETAIL)
15门诊费用记录(fy_mzjl)
字段名称
中文说明
键别
是否空
数据类型
长度
备注
ID
门诊记录id
PK
NO
NUMERIC
32
SJ
时间
YSE
DATETIME
0
JGDM
机构代码
YSE
VARCHAR
50
JGMC
机构名称
YSE
VARCHAR
50
ZDSM
诊断说明
YSE
VARCHAR
50
SFQY
是否签约
YSE
VARCHAR
50
JZLSH
就诊流水号
YSE
VARCHAR
50
KH
卡号
YSE
VARCHAR
50
JZYY
就诊原因
YSE
VARCHAR
50
ZJJE
总计金额
YSE
NUMERIC
18
16门诊费用记录明细表(fy_mzjl_mx)
字段名称
中文说明
键别
是否空
数据类型
长度
备注
ID
明细表标识Id
PK
NO
NUMERIC
18
JZLSH
就诊流水号
YES
VARCHAR
64
CFSB
处方识别
YES
VARCHAR
64
FPHM
发票号码
YES
VARCHAR
64
ZFBZ
费用备注
YES
VARCHAR
1
CFHM
处方号码
YES
VARCHAR
64
YPBM
药品编码
YES
VARCHAR
10
YPMC
药品名称
YES
VARCHAR
200
YPJX
药品剂型
YES
VARCHAR
2
YPGG
药品规格
YES
VARCHAR
50
YYTJ
原因统计
YES
VARCHAR
3
YYPC
医疗频次
YES
VARCHAR
20
YCJL
用量
YES
DECIMAL
10
JLDW
单位
YES
VARCHAR
8
YYTS
服药次数
YES
DECIMAL
5
JGDM
机构代码
YES
VARCHAR
50
JGMC
机构名称
YES
VARCHAR
100
FYFL
费用分类
YES
VARCHAR
50
YPDJ
药品单价
YES
NUMERIC
18
HJJE
合计金额
YES
NUMERIC
18
KDRQ
快递日期
YES
DATETIME
0
17医保费用表(fy_ybzf)
字段名称
中文说明
键别
是否空
数据类型
长度
备注
ID
医保费用ID
PK
NO
NUMRIC
18
SJ
时间
YES
VARCHAR
50
ZFY
总费用
YES
VARCHAR
50
YPFY
药品费用
YES
VARCHAR
50
JCFY
检查费用
YES
VARCHAR
50
ZLFY
诊疗费用
YES
VARCHAR
50
QTFY
其他费用
YES
VARCHAR
50
DBZFY
单病种费用
YES
VARCHAR
50
RJJZCS
人均就诊次数
YES
VARCHAR
50
18医保费用明细表(fy_ybzf_mx)
字段名称
中文说明
键别
是否空
数据类型
长度
备注
ID
标识ID
PK
NO
NUMERIC
18
BRXM
病人姓名
VARCHAR
50
ZED
总额度
VARCHAR
50
SYED
医保额度使用
VARCHAR
50
SYEDZB
医保额度使用占比
VARCHAR
50
SYED_SJ
医保额度使用(市均)
VARCHAR
50
ZLFY
诊疗费用
VARCHAR
50
YPFY
药品费用
VARCHAR
50
YPFY_SJ
药品费用(市均)
VARCHAR
50
JCFY
检查费用
VARCHAR
50
JCFY_SJ
检查费用(市均)
VARCHAR
50
QTFY
其他费用
VARCHAR
50
QTFY_SJ
其他费用(市均)
VARCHAR
50
ZT
状态
VARCHAR
50
KH
卡号
VARCHAR
50
MONTH
月份
VARCHAR
50
YL_2
VARCHAR
50
YL_3
VARCHAR
50
YL_4
VARCHAR
50
19住院标准费用表(fy_zybzf)
字段名称
中文说明
键别
是否空
数据类型
长度
备注
ID
标识Id
PK
NO
NUMERIC
18
FK
ZRYS
住院医生
YES
VARCHAR
10
YEAR
年份
YES
VARCHAR
10
MONTH
月份
YES
VARCHAR
10
QYRS
签约医生
YES
NUMERIC
18
QYBL
签约比例
YES
NUMERIC
18
YBFYGLED
医保费用管理额度
YES
NUMERIC
18
ZXZFFY
自行支付费用
YES
NUMERIC
18
YBZFL
医保支付率
YES
NUMERIC
18
ZXZFL
自行支付率
YES
NUMERIC
18
7.2物理结构设计
给出本系统内所使用的每个数据结构中的每个数据项的存储要求,访问方法、存取单位、存取的物理关系(索引、设备、存储区域)、设计考虑和保密条件。
7.3数据结构与程序的关系
说明各个数据结构与访问这些数据结构的形式:
推荐访问:说明书 家庭医生 管理平台 说明书 家庭医生信息管理平台数据库设计说明书