1.4 数据库分析与设计
1.4 数据库分析与设计
1.4.1 数据库分析
在开发企业日常事务管理系统时,考虑到中小型企业的需求,项目开发成本以及维护成本。本系统将采用MySQL5.0
作为后台数据库,数据库名为db_Affairmanage
。数据库中一共包含4张表,用来储存不同的信息,详细信息如图1-13所示
1.4.2 数据库概念设计
本系统一共设计规划出4个实体,分别是员工信息实体、消息信息实体、消息回复实体以及消息批复实体.
只有企业内部员工才能使用该系统,因此需要在数据库中建立一个员工信息表,用来储存员工的相关信息。员工信息实体ER
图如图1-14所示。
公司每个员工都可以发表消息,这时就需要有一个表来储存这些消息信息。消息信息实体ER
图如图1-15所示。
公司每个员工可以对已经发布的消息进行回复,这时就需要一个表来储存这些消息回复消息回复实体E-R
图如图1-16所示。
公司的管理层领导可以对已经发布的消息进行批复,这时就需要一个表来储存这些消息批复。消息批复实体ER
图如图1-17所示。
1.4.3 数据库逻辑结构设计
根据设计好的各实体E-R
图创建数据库的逻辑结构,数据库各表的结构如下。
员工信息表
(1)员工信息表用来储存员工的基本信息,如员工编号、员工姓名、员工性别、出生日期以及办公室电话等信息,该表的逻辑结构如表1-1所示。
字段名 | 数据类型 | 是否主键 | 描述 |
---|---|---|---|
employeeID |
整数(int ) |
是 | 员工编号 |
employeeName |
文本(varchar ) |
否 | 员工姓名 |
employeeSex |
位(bit ) |
否 | 员工性别 |
employeeBirth |
日期(date ) |
否 | 出生日期 |
employeePhone |
文本(varchar ) |
否 | 办公室电话 |
employeePlace |
文本(varchar ) |
否 | 住址 |
joinTime |
日期date ) |
否 | 录入时间 |
password |
文本(varchar ) |
否 | 系统口令 |
isLead |
位(bit ) |
否 | 是否为管理层领导 |
消息信息表
(2)消息信息表用来储存发布消息的信息,如消息ID
、消息标题、消息内容、发布人以及发布时间,该表的逻辑结构如表1-2所示
字段名 | 数据类型 | 是否主键 | 描述 |
---|---|---|---|
messageID |
整数(int ) |
是(自动递增) | 消息ID |
messageTitle |
文本(varchar ) |
否 | 消息标题 |
messageContent |
文本(Text ) |
否 | 消息内容 |
employeeID |
整数(int ) |
否(外键) | 发布人 |
publishTime |
日期时间(datetime ) |
否 | 发布时间 |
消息回复表
(3)消息回复表用来储存消息的回复信息,如消息回复ID、回复内容、回复人、回复时间以及消息ID
,该表的逻辑结构如表1-3所示
字段名 | 数据类型 | 是否主键 | 描述 |
---|---|---|---|
replyID |
整数(int ) |
是(自动递增) | 消息回复ID |
replyContent |
文本(Text |
否 | 回复内容 |
employeeID |
整数(int ) |
否(外键) | 回复人 |
replyTime |
日期时间(datetime ) |
否 | 回复时间 |
messageID |
整数(int ) |
否(外键) | 消息ID |
消息批复表
(4)消息批复表用来储存消息的批复信息,如消息批复⑩D、批复内容、批复人、批复时间以及消息ID
,该表的逻辑结构如表1-4所示。
字段名 | 数据类型 | 是否主键 | 描述 |
---|---|---|---|
criticismID |
整数(int ) |
是(自动递增) | 消息批复ID |
criticismContent |
文本(Tex ) |
否 | 批复内容 |
employeeID |
整数(int ) |
否(外键) | 批复人 |
criticismTime |
日期时间(datetime ) |
否 | 批复时间 |
messageID |
整数(int ) |
否(外键) | 消息ID |
1.4.4 绘制表之间关系ER图
根据各表关系绘制关系ER
图如图1-18所示。