基于java的CRM客户关系管理系统(四)

43 篇文章 0 订阅
43 篇文章 0 订阅

目录

第四章 数据库设计

4.1 系统和数据的关系

4.2 数据库结构设计

4.2.1 业务实体设计

4.2.2 设计域模型 

4.3 数据库逻辑结构设计

 4.4 本章小结 


前面内容请移步

基于java的CRM客户关系管理系统(三)

资源+毕业设计+毕业论文+源代码请移步

CRM客户关系管理系统+毕业论文+毕业设计+源代码

第四章 数据库设计

        数据库的存在意义就是存储数据,根据需求分析就是客户信息和产品信息,最明显的表现形式就是表结构的存在。然而设计数据库的初衷就是为应用程序提u供后台支持,把代码和系统能分离出来,良好的数据库设计有很多,可以降低数据之间的冗余,提高数据库的可维护性,同时也能提高系统运行时的速度和系统的稳定性,实现数据之间的共享。可是根据系统的功能需求设计数据库并不是那么简单,需要反复的分析功能需求,逐步的研究和推敲出最为合理的数据库表,把表和表之间的潜在的关系通过E-R图表现出来。

4.1 系统和数据的关系

图4.1 数据库与系统的管理

4.2 数据库结构设计

        下图就是数据库表的设计的E-R图,就是实体-联系,通过E-R图,可以清楚的了解系统的表与表之间的结构关系,从概念上反应数据库信息组成情况。

图4.2 数据库E-R逻辑

4.2.1 业务实体设计

        业务实体在应用程序是实体对象的表现形式存在,在后台数据库存在的形式就是表和表之间的关系那么业务实体的实现有下面的三个步骤

  1. 设计域模型,创建域模型实体对象
  2. 设计关系型数据模型
  3. 创建对象、关系映射文件

4.2.2 设计域模型 

        生成一张客户关系记录需要上述的这些表。下面是详细的定义出这些数据库表字段代表的意思

  1. 部门表(hr_department):部门信息的记载。主要的属性有:部门主键(id),部门名称(d_name),上级分类ID(parentid),负责人(d_employee),电话(d_telephone),地址(d_address),邮箱(d_email),描述(d_description)。
  2. 职务表(hr_postion):对职务信息的记载。属性有:职务ID(ID),职务名称(postion_name),职务次序(postion_order)。
  3. 岗位表(hr_post):岗位信息的描述。属性有:岗位ID(ID),岗位名称(post_name),岗位描述(hr_descript)。
  4. 系统角色表(sys_role):记录的是角色的枚举值。属性有角色ID(ID),角色名称(rolename),权限说明(rolescript),当前权限可以操作(childmenus),权限排序(rolesort)。
  5. 员工表(hr_employee):员工信息的记录。属性有:员工ID(ID),用户名(uid),密码(pwd),姓名(name),身份证(idcard),生日(birthday),邮箱(email),性别(sex),电话(telephone),地址(address),备注(remarks)。
  6. 省市表:(param_city):作为省市参数的枚举表。属性有:省市ID(ID),上级ID(parentID),城市名称(city)。
  7. 客户表(crm_customer):客户信息(主要是集团客户)的记录。主要的属性有:客户表主键(ID),客户序列号(serialnumber),公司名称(customer),公司地址(address),公司电话(tel),公司网址(site),公司描述(descript),备注(remarks)。
  8. 产品类别表(crm_product_category):记录产品的分类,属性有客户类型主键(ID),父类型id(parentId)。
  9. 产品信息表(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

CREATE TABLE `hr_position` (

  `id` int(8) NOT NULL AUTO_INCREMENT COMMENT '职务ID PK',

  `position_name` varchar(250) DEFAULT NULL COMMENT '名称',

  `position_order` varchar(50) DEFAULT NULL COMMENT '次序',

  PRIMARY KEY (`id`),

)

 表 4-2 职务表结构 

Hr_postion

职务表

字段名

字段描述

数据类型

空/非空

默认值

约束条件

id

职务编号

int

false

主键

Postion_name

职务名称

Varchar(250)

true

null

Postion_order

职务次序

Varchr(50)

true

null

CREATE TABLE `hr_post` (

  `post_id` int(8) NOT NULL AUTO_INCREMENT COMMENT '岗位ID PK',

  `post_name` varchar(255) DEFAULT NULL COMMENT '岗位名称',

  `position_id` int(8) DEFAULT NULL COMMENT '职务ID FK',

  `position_order` varchar(50) DEFAULT NULL COMMENT '职务次序号',

  `dep_id` int(8) DEFAULT NULL COMMENT '岗位部门ID FK',

  `post_descript` longtext COMMENT '岗位描述',

  PRIMARY KEY (`post_id`),

  KEY `position_id` (`position_id`),

  KEY `dep_id` (`dep_id`),

  CONSTRAINT `hr_post_ibfk_1` FOREIGN KEY (`position_id`) REFERENCES `hr_position` (`id`),

  CONSTRAINT `hr_post_ibfk_2` FOREIGN KEY (`dep_id`) REFERENCES `hr_department` (`id`)

)

 表 4-3 岗位表结构 

hr_post

岗位表

字段名

字段描述

数据类型

空/非空

默认值

约束条件

id

岗位编号

int

false

主键

Post_name

名称

Varchar(255)

true

null

Postion_id

岗位职务

int

true

null

外键

Dep_id

岗位部门

int

true

null

外键

Post_descript

描述

longText

true

null

CREATE TABLE `sys_role` (

  `roleid` int(8) NOT NULL AUTO_INCREMENT COMMENT '角色表PK',

  `rolename` varchar(255) DEFAULT NULL COMMENT '角色名称',

  `roledscript` varchar(255) DEFAULT NULL COMMENT '权限说明',

  `childmenus` varchar(300) DEFAULT NULL COMMENT '当前权限下可以操作的子菜单',

  `rolesort` char(10) DEFAULT NULL COMMENT '权限排序',

  PRIMARY KEY (`roleid`)

)

表 4-4 角色表结构  

Sys_role

角色表

字段名

字段描述

数据类型

空/非空

默认值

约束条件

roleid

角色编号

int

false

主键

rolename

名称

Varchar(255)

true

null

rolescript

角色描述

Varchar(255)

true

null

childmenus

地址

Varchar(300)

true

null

rolesort

次序

Char(8)

true

null

CREATE TABLE `hr_employee` (

  `id` int(8) NOT NULL AUTO_INCREMENT COMMENT '员工表ID 主键',

  `uid` varchar(50) DEFAULT NULL COMMENT '用户名',

  `pwd` varchar(50) DEFAULT NULL COMMENT '密码',

  `name` varchar(50) DEFAULT NULL COMMENT '姓名',

  `idcard` varchar(50) DEFAULT NULL COMMENT '身份证',

  `birthday` date DEFAULT NULL COMMENT '生日',

  `email` varchar(50) DEFAULT NULL COMMENT '邮箱',

  `sex` varchar(50) DEFAULT NULL COMMENT '性别',

  `telephone` varchar(50) DEFAULT NULL COMMENT '电话',

  `status` varchar(50) DEFAULT NULL COMMENT '状态',

  `sort` int(8) DEFAULT NULL COMMENT '排序 num',

  `entrydate` date DEFAULT NULL COMMENT '入职日期',

  `address` varchar(255) DEFAULT NULL COMMENT '地址',

  `remarks` varchar(255) DEFAULT NULL COMMENT '备注',

  `education` varchar(50) DEFAULT NULL COMMENT '学历',

  `professional` varchar(50) DEFAULT NULL COMMENT '专业',

  `schools` varchar(50) DEFAULT NULL COMMENT '毕业学校',

  `role_id` int(8) DEFAULT NULL COMMENT '角色表 ID  FK',

  PRIMARY KEY (`id`),

  KEY `post_id` (`post_id`),

  KEY `role_id` (`role_id`),

  CONSTRAINT `hr_employee_ibfk_2` FOREIGN KEY (`post_id`) REFERENCES `hr_post` (`post_id`),

  CONSTRAINT `hr_employee_ibfk_5` FOREIGN KEY (`role_id`) REFERENCES `sys_role` (`roleid`)

)

 表 4-5 员工表结构 

hr_rmployee

员工表

字段名

字段描述

数据类型

空/非空

默认值

约束条件

id

员工表id

int

false

主键

uid

用户名

Varchar(50)

true

null

pwd

密码

Varchar(50)

true

null

name

姓名

Varchar(50)

true

null

idcarde

身份证

Varchar(50)

true

null

birthday

生日

date

true

null

Post_id

岗位id

Int

true

null

外键

email

邮件

Varchar(250)

true

null

Sex

性别

Varcahr(50)

True

null

telephone

电话

Varchar(50)

true

null

status

状态

Varchar

true

null

entrydate

入职日期

date

true

null

address

地址

Address(255)

true

null

remarks

备注

Varcahr(255)

true

null

education

学历

Varcahr(50)

true

null

roleid

角色id

int

true

null

外键

professioonal

专业

Varcahr(250)

true

null

schools

毕业学校

Varcahr(250)

true

null

CREATE TABLE `param_city` (

  `id` int(8) NOT NULL AUTO_INCREMENT COMMENT '省市ID PK',

  `parentid` int(8) DEFAULT NULL COMMENT '上级ID',

  `city` varchar(250) DEFAULT NULL COMMENT '省市名称',

  PRIMARY KEY (`id`)  

)

 表 4-6 省市表结构 

Param_city

省市表

字段名

字段描述

数据类型

空/非空

默认值

约束条件

id

省市编号

int

false

主键

city

城市名

Varchar(250)

true

null

parentid

上级分类

int

true

null

CREATE TABLE `crm_customer` (

  `id` int(8) NOT NULL AUTO_INCREMENT COMMENT '客户表主键 PK',

  `serialnumber` varchar(250) DEFAULT NULL COMMENT '客户序列号',

  `customer` varchar(250) DEFAULT NULL COMMENT '公司名称',

  `address` varchar(250) DEFAULT NULL COMMENT '公司地址',

  `tel` varchar(250) DEFAULT NULL COMMENT '公司电话',

  `site` varchar(250) DEFAULT NULL COMMENT '公司网止',

  `provinces_id` int(8) DEFAULT NULL COMMENT '公司省份ID Fk',

  `city_id` int(8) DEFAULT NULL COMMENT '公司城市ID FK',

  `descripe` varchar(4000) DEFAULT NULL COMMENT '客户描述',

  `remarks` varchar(4000) DEFAULT NULL COMMENT '备  注',

  `create_id` int(8) DEFAULT NULL COMMENT '创建人id FK',

  PRIMARY KEY (`id`),

  KEY `ix_crm_customer_customer` (`customer`),

  KEY `provinces_id` (`provinces_id`),

  KEY `city_id` (`city_id`),

  KEY `employee_id` (`employee_id`),

  KEY `create_id` (`create_id`),

  CONSTRAINT `crm_customer_ibfk_7` FOREIGN KEY (`employee_id`) REFERENCES `hr_employee` (`id`),

)

 表 4-7 客户表结构 

Crm_customer

客户表

字段名

字段描述

数据类型

空/非空

默认值

约束条件

id

客户表编号

int

false

主键

serilnumber

客户序号

Varchar(250)

True

null

customer

公司名称

Varchar(250)

True

null

address

地址

Varchar(250)

True

null

tel

电话

Varchar(250)

True

null

site

网址

Varchar(250)

True

null

Provinces_id

公司省份

Varchar(250)

True

null

外键

City_id

公司城市

Varchar(250)

True

null

外键

descript

描述

Varchar(250)

True

null

remarks

备注

Varchar(250)

True

null

Employee_id

负责员工

Int(8)

True

null

外键

CREATE TABLE `crm_product_category` (

  `id` int(8) NOT NULL AUTO_INCREMENT COMMENT '产品类别ID pk',

  `product_category` varchar(250) DEFAULT NULL COMMENT '产品分类名称',

  `parentid` int(8) DEFAULT NULL COMMENT '父类别ID',

  PRIMARY KEY (`id`)

)

 表 4-8 产品类别表结构 

Crm_product_catrgory

产品类别表

字段名

字段描述

数据类型

空/非空

默认值

约束条件

id

产品类别id

int

false

主键

Product_category

类别名

Varchar(250)

true

null

parentid

上级分类

int

true

null

CREATE TABLE `crm_product` (

  `product_id` int(8) NOT NULL AUTO_INCREMENT COMMENT '产品ID PK',

  `category_id` int(8) DEFAULT NULL COMMENT '产品分类ID FK',

  `product_name` varchar(100) DEFAULT NULL COMMENT '产品名称',

  `specifications` varchar(250) DEFAULT NULL COMMENT '规格说明',

  `status` varchar(250) DEFAULT NULL COMMENT '状态',

  `unit` varchar(250) DEFAULT NULL COMMENT '单位',

  `remarks` longtext COMMENT '备注解释',

  `price` double DEFAULT NULL COMMENT '价格',

  PRIMARY KEY (`product_id`),

  KEY `category_id` (`category_id`),

  CONSTRAINT `crm_product_ibfk_1` FOREIGN KEY (`category_id`) REFERENCES `crm_product_category` (`id`)

)

 表 4-9 产品信息表结构 

hr_product

产品信息表

字段名

字段描述

数据类型

空/非空

默认值

约束条件

id

产品id

int

false

主键

Category_id

类别id

int

true

null

外键

Product_name

名称

Varchar(100)

true

null

specifications

规格

Varchar(250)

true

null

Status

状态

Varchar(250)

true

null

unit

单位

date

true

null

remarks

备注

longtext

true

null

price

价格

double

true

null

 4.4 本章小结 

        这一章介绍了根据业务需求设计数据库的相关表和表与表之间的关系以及给出了建表语句。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值