JSP电信通讯计费系统设计(含英文文献翻译)
第二节 数据库设计
数据库在一个MIS系统(Management Information System)中占有非常重要的地位,数据库结构设计的好坏将直接对应用系统的效率以及实现的效果产生影响。合理的数据库结构设计可以提高数据存储的效率,保证数据的完整和一致[10]。
一、数据库设计原则
根据数据库开发工程师们多年的开发经验,总结出一些公认的较好的设计原则如下:
①不应该针对整个系统进行数据库设计,而应该根据系统架构中的组件划分,针对每个组件所处理的业务进行组件单元的数据库设计;不同组件间所对应的数据库表之间的关联应尽可能减少,如果不同组件间的表需要外键关联也尽量不要创建外键关联,而只是记录关联表的一个主键,确保组件对应的表之间的独立性,为系统或表结构的重构提供可能性。
②采用领域模型驱动的方式和自顶向下的思路进行数据库设计,首先分析系统业务,根据职责定义对象。对象要符合封装的特性,确保与职责相关的数据项被定义在一个对象之内,这些数据项能够完整描述该职责,不会出现职责描述缺失。并且一个对象有且只有一项职责,如果一个对象要负责两个或两个以上的职责,应进行分拆。
③根据建立的领域模型进行数据库表的映射,此时应参考数据库设计第二范式:一个表中的所有非关键字属性都依赖于整个关键字。关键字可以是一个属性,也可以是多个属性的集合,不论那种方式,都应确保关键字能够保证唯一性。在确定关键字时,应保证关键字不会参与业务且不会出现更新异常,这时,最优解决方案为采用一个自增数值型属性或一个随机字符串作为表的关键字。
④由于第一点所述的领域模型驱动的方式设计数据库表结构,领域模型中的每一个对象只有一项职责,所以对象中的数据项不存在传递依赖,所以,这种思路的数据库表结构设计从一开始即满足第三范式:一个表应满足第二范式,且属性间不存在传递依赖。同样,由于对象职责的单一性以及对象之间的关系反映的是业务逻辑之间的关系,所以在领域模型中的对象存在主对象和从对象之分,从对象是从1-N或N-N的角度进一步主对象的业务逻辑,所以从对象及对象关系映射为的表及表关联关系不存在删除和插入异常。
⑤设计出的表要具有较好的使用性,主要体现在查询时是否需要关联多张表且还需使用复杂的SQL技巧。
⑥设计出的表要尽可能减少数据冗余,确保数据的准确性,有效的控制冗余有助于提高数据库的性能。
总之,尽量遵循下列原则:即基本表的个数越少越好;主键的个数越少越好;字段的个数越少越好[10]。
二、数据库概念结构设计
根据第二章介绍的一些用户基本需求,再结合到实际开发的需要,做简单的数据库需求分析后,可得到满足用户需求的各种实体,以及它们之间的关系,为后面的逻辑结构设计打下基础。这些实体包含各种具体信息,通过相互之间的作用形成数据的流动。下面仅给出两项重要的E-R图。
图3.7 权限菜单实体联系图
图3.8 业务实体联系图
二、数据库逻辑结构设计
根据设计好的E-R图,结合编写代码的方便和功能的需要,设计好如下逻辑结构,以下摘选部分重要的表(字段类型参照的是oracle):
1、系统相关表
表3.1 操作员信息表
字段标识 字段名称 类型 是否为空 备注
OPERATOR_ID 登录号 VARCHAR2(20) 否 主键
OPERATOR_NAME 员工姓名 VARCHAR2(60) 否
OPERATOR_PWD 密码 VARCHAR2(30) 否
SYSUSERGROUP_NO 系统用户组编号 NUMBER 否
DEPARTMENT_NO 所属部门 NUMBER 否
STATUS 状态 CHAR 否 1、在用,2、删除
表3.2 系统用户信息表
字段标识 字段名称 类型 是否为空 备注
SYSUSERGROUP_NO 系统用户组编号 NUMBER 否 主键
SYSUSERGROUP_NAME 系统用户组名称 VARCHAR2(60) 否
STATUS 状态 CHAR 否 1:在用、0:删除
表3.3 菜单信息表
字段标识 字段名称 类型 是否为空 备注
MENU_ID 菜单编号 NUMBER 否 主键
MENU_NAME 菜单名称 VARCHAR2(30) 否
MENU_URL 菜单的URL VARCHAR2(200) 是
MENU_LEVEL 菜单层次 NUMBER 否 菜单位于第几级
MENU_ORDER 菜单序号 NUMBER 否
BELONGTO 上级菜单编号 NUMBER 是
STATUS 状态 CHAR 否 在用1、删除0
表3.4 系统用户组菜单权限表
字段标识 字段名称 类型 是否为空 备注
ID 编号 NUMBER 否 主键
SYSUSERGROUP_NO 系统用户组编号 NUMBER 否
MENU_ID 菜单编号 NUMBER 否
STATUS 状态 CHAR 否 在用1、删除0
2、基础数据表
目前已知费用类型分市话,区间通话,国内长途,国际长途,港澳台长途,11808市话,11808长话,月租,网络使用费,程控功能费(来电显示等),滞纳金。
表3.5 费用类型表
字段标识 字段名称 类型 是否为空 备注
FEE_TYPE_NO 费用类型编号 NUMBER 否 主键
FEE_TYPE_NAME 费用类型名称 VARCHAR2(30) 否
FEE_MAINTYPE_NO 费用大类编号 NUMBER
STATUS 状态 CHAR 否 在用1、删除0
表3.6 计费方法表
字段标识 字段名称 类型 是否为空 备注
<< 上一页 [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] 下一页
JSP电信电话计费系统设计(含英文文献翻译) 第13页下载如图片无法显示或论文不完整,请联系qq752018766