目录
前面内容请移步
资源+毕业设计+毕业论文+源代码请移步
第四章 数据库设计
数据库的存在意义就是存储数据,根据需求分析就是客户信息和产品信息,最明显的表现形式就是表结构的存在。然而设计数据库的初衷就是为应用程序提u供后台支持,把代码和系统能分离出来,良好的数据库设计有很多,可以降低数据之间的冗余性,提高数据库的可维护性,同时也能提高系统运行时的速度和系统的稳定性,实现数据之间的共享。可是根据系统的功能需求设计数据库并不是那么简单,需要反复的分析功能需求,逐步的研究和推敲出最为合理的数据库表,把表和表之间的潜在的关系通过E-R图表现出来。
4.1 系统和数据的关系
图4.1 数据库与系统的管理
4.2 数据库结构设计
下图就是数据库表的设计的E-R图,就是实体-联系图,通过E-R图,可以清楚的了解系统的表与表之间的结构关系,从概念上反应数据库信息组成情况。
图4.2 数据库E-R逻辑
4.2.1 业务实体设计
业务实体在应用程序是实体对象的表现形式存在,在后台数据库中存在的形式就是表和表之间的关系。那么业务实体的实现有下面的三个步骤:
- 设计域模型,创建域模型实体对象
- 设计关系型数据模型
- 创建对象、关系映射文件
4.2.2 设计域模型
生成一张客户关系记录需要上述的这些表。下面是详细的定义出这些数据库表字段的代表的意思:
- 部门表(hr_department):部门信息的记载。主要的属性有:部门主键(id),部门名称(d_name),上级分类ID(parentid),负责人(d_employee),电话(d_telephone),地址(d_address),邮箱(d_email),描述(d_description)。
- 职务表(hr_postion):对职务信息的记载。属性有:职务ID(ID),职务名称(postion_name),职务次序(postion_order)。
- 岗位表(hr_post):岗位信息的描述。属性有:岗位ID(ID),岗位名称(post_name),岗位描述(hr_descript)。
- 系统角色表(sys_role):记录的是角色的枚举值。属性有角色ID(ID),角色名称(rolename),权限说明(rolescript),当前权限可以操作(childmenus),权限排序(rolesort)。
- 员工表(hr_employee):员工信息的记录。属性有:员工ID(ID),用户名(uid),密码(pwd),姓名(name),身份证(idcard),生日(birthday),邮箱(email),性别(sex),电话(telephone),地址(address),备注(remarks)。
- 省市表:(param_city):作为省市参数的枚举表。属性有:省市ID(ID),上级ID(parentID),城市名称(city)。
- 客户表(crm_customer):客户信息(主要是集团客户)的记录。主要的属性有:客户表主键(ID),客户序列号(serialnumber),公司名称(customer),公司地址(address),公司电话(tel),公司网址(site),公司描述(descript),备注(remarks)。
- 产品类别表(crm_product_category):记录产品的分类,属性有客户类型主键(ID),父类型id(parentId)。
- 产品信息表(crm_product):记录的是产品信息。属性有产品id(product_id ),产品名称(product_name),产品规格(specifications),状态(status),单位(unit),备注(remarks),价格(price)。
上文和图4-2反应了各个表之间的关系。
4.3 数据库逻辑结构设计
部门类,职务类,客户类等这些对象都需要持久化,这些类在数据库上都有对应的表结构产生意义对应的是部门表,职务表,客户表等,设计出的数据库包含这些表。如下为各个表的建表语句以及表结构。
CREATE TABLE `hr_department` (
`id` int(8) NOT NULL AUTO_INCREMENT COMMENT '部门主键PK',
`d_name` varchar(50) DEFAULT NULL COMMENT '部门名称',
`parentid` int(8) DEFAULT NULL COMMENT '上级分类ID',
`d_employee` varchar(50) DEFAULT NULL COMMENT '负责人',
`d_telephone` varchar(50) DEFAULT NULL COMMENT '电话',
`d_address` varchar(255) DEFAULT NULL COMMENT '地址',
`d_email` varchar(50) DEFAULT NULL COMMENT '邮箱',
`d_description` varchar(255) DEFAULT NULL COMMENT '描述',
`d_order` varchar(50) DEFAULT NULL COMMENT '部门次序',
`isdelete` int(1) DEFAULT '1' COMMENT '是否已删除0/1',
`delete_time` date DEFAULT NULL COMMENT '删除时间',
PRIMARY KEY (`id`)
)
表 4-1 部门表结构
hr_department |
部门表 |
||||
字段名 |
字段描述 |
数据类型 |
空/非空 |
默认值 |
约束条件 |
id |
联系人编号 |
int |
false |
主键 |
|
D_name |
姓名 |
Varchar(250) |
true |
null |
|
parentid |
上级分类 |
Varchar(250) |
true |
null |
|
D_employee |
负责人 |
Varchar(50) |
true |
null |
|
D_telephone |
电话 |
Varchar(50) |
true |
null |
|
D_address |
地址 |
Varchar(255) |
true |
null |
|
D_email |
邮箱 |
Varchar(50) |
true |
null |
|
D_description |
描述 |
Varchar(250) |
true |
null |
|
D_order |
部门次序 |
Varchar(50) |
true |
null |