首页 > 技术文章 > 团队作业第五次—项目系统设计与数据库设计

onlineservice666 2019-04-15 02:44 原文

作业描述

所属课程 软件工程1916|W(福州大学)
作业要求 团队作业第五次—项目系统设计与数据库设计
团队名称 待就业六人组
作业目标 宏观的对系统的整体结构设计,并在此基础上,进行数据库设计
系统设计说明书.pdf Github链接
数据库设计说明书.pdf Github链接
第五次作业评审表.pdf Github链接
第五次作业答辩PPT.pdf Github链接

一、设计类图

在OOA模型中,我们初步建立了类图,描述了系统中行为实体间的静态结构。在OOD阶段,我们详细分析了类与类之间所存在的关联性,从控制类、边界类、实体类的角度出发,进一步总结梳理出系统整体的静态组织结构。

1.1 登录子系统类图

1.2 参与者类图

1.3 智能推送类

1.4 信息管理类图

1.5 信息查询类图

1.6 投递简历类图

1.7 审核简历类图

1.8 私信类图

二、系统体系结构设计

2.1 系统分析

由OOA阶段的分析可知,类图体现了校招平台在微观上的静态结构,但由于整个系统内容繁多,较为庞大,使用类图分析将大大增多工作量,因此我们从宏观上对整个系统进行分析,将之划分为互有联系又相对独立的几部分,如下图所示。

2.1.1 用户包图

2.1.2 登录包图

2.1.3 界面包图

2.1.4 接口包图

2.2 结构设计

进行了以上分析之后,本平台根据小组成员过去的开发经验,决定采用MVC框架模式。MVC采用单一入口模式进行项目部署和访问,准确处理好模块与模块之间的联系。MVC包括三个部分:控制器,定义后使用视图和模型,负责通信、转发请求、响应请求;视图,实现静态的图形界面设计;模型定义相应的控制器编写算法等等实现程序功能、实现具体的数据管理和数据库设计。MVC通用的模型设计如下图所示。

针对MVC架构对类和操作进行分析,得到的分析结果如下图:

2.3 功能模块设计

根据系统需求分析对系统进行整体的模块设计,设计出校招平台的总体功能模块结构图(HIPO图)将系统分为八部分,如下图所示。

三、数据库设计

根据系统的功能需求和系统架构模型,完成了系统的数据库设计。

3.1 数据流图

3.1.1 顶层数据流图

3.1.2 求职者数据流图

3.1.3 招聘者数据流图

3.2 E-R图设计

根据不同实体类型、属性和联系,完成对数据库E-R图设计,如下图。

3.3 关系模型分析

将E-R图转换为关系模型。

  • 公司(公司id,电话号码,密码,公司名,头像链接,邮箱,企业描述,是否通过审核)
  • 学生(学生id,密码,电话号码,用户名,头像链接,邮箱,性别,学校,专业,职业,当前城市,期望城市)
  • 招聘会(招聘会id,公司id,时间,地点,面向人群,描述)
  • 招聘信息(招聘信息id,公司id,时间戳,岗位描述,联系人及联系方式,任职资格,工作地点,投递要求,工作职责,薪酬福利,招聘或者兼职,有效)
  • 简历(简历id,student_id,电话号码,用户名,简历头像链接,邮箱,性别,最高学历,职业,当前城市,期望城市,教育背景,证书,项目经历,实践经历,自我评价,简历状态)
  • 简历投递(简历投递id,公司发布的职位信息的id,简历id,投递状态)
  • 聊天室(学生id,hr_id,聊天室id,发送方)
  • 聊天记录(记录id,聊天室id,内容,时间戳)

3.4 表结构设计

结合MySQL数据库管理系统特点和E-R图设计,主要表的结构如下:(1)student表

字段名 数据类型 默认 注释
student_id char(128) 随机生成的主键
passwd char(32) 密码
telephone char(14) 电话号码
user_name char(20) 用户名
head_url varchar(256) 头像链接
email char(32) 邮箱
sex tinyint(4) 性别
school char(64) 学校
specialty varchar(64) 专业
occupation varchar(32) 职业
present_city varchar(64) 当前城市
expected_city varchar(64) 期望城市

(2)企业信息表

字段名 数据类型 默认 注释
company_id![主键](file:///C:/Users/QQ625/AppData/Local/Temp/msohtmlclip1/01/clip_image001.gif) char(128) 随机生成的主键
telephone char(14) 电话号码
passwd char(32) 密码
company_name varchar(50) 公司名
head_url varchar(256) 头像链接
char(32) 邮箱
description text 企业描述
status tinyint(4) 是否审核

(3)招聘职位信息表

字段名 数据类型 默认 注释
publish_time timestamp 当前时间 时间戳
company_id char(128) 公司id
description text 岗位描述
recruitment_id int(11) 主键
contact varchar(32) 联系人及联系方式
qualifications varchar(128) 任职资格
location varchar(64) 工作地点
delivery_request varchar(64) 投递要求
duty varchar(64) 工作职责
salary varchar(64) 薪酬福利
type int(11) 招聘或者兼职
validate int(11) 有效

(4)简历信息表

字段名 数据类型 默认 注释
resume_id int(11) 自增 简历id
user_id char(128) 外键
telephone char(14) 电话号码
user_name char(20) 用户名
head_url varchar(256) 头像链接
email char(32) 邮箱
sex tinyint(4) 性别
highest_education tinyint(4) NULL 最高学历
occupation varchar(32) 职业
present_city varchar(64) 当前城市
expected_city varchar(64) 期望城市
degree varchar(1024) 教育背景
certificate varchar(1024) 证书
project_experience varchar(2048) 项目经历
practical_experience varchar(2048) 实践经历
self_evaluation varchar(128) 自我评价
resume_status int(11) 0代表未投递,1代表已投递,

(5)简历投递表

字段名 数据类型 默认 注释
resume_delivery_id![主键](file:///C:/Users/QQ625/AppData/Local/Temp/msohtmlclip1/01/clip_image001.gif) int(11) 自增 简历投递id
recruitment_id![索引](file:///C:/Users/QQ625/AppData/Local/Temp/msohtmlclip1/01/clip_image001.gif) int(11) 招聘信息的id![索引](file:///C:/Users/QQ625/AppData/Local/Temp/msohtmlclip1/01/clip_image001.gif)
resume_id int(11) 简历id
delivery_status int(11) 0 投递状态

四、验收验证标准

界面和功能验收验证标准已经在需求规格说明书中已经涉及,这里不再赘述。这次的验收验证标准主要是对系统设计和数据库设计:

4.1 系统体系结构需满足MVC设计模式

MVC设计模式是将整个系统划分为

(1)表现层(Presentation layer):包含表示代码、用户交互GUI、数据验证。 该层用于向客户端用户提供GUI交互,它允许用户在显示系统中输入和编辑数据,同时 系统提供数据验证功能。

(2)业务逻辑层(Business layer):包含业务规则处理代码,即程序中与业务 相关专业算法、业务政策等等。该层用于执行业务流程和制订数据的业务规则。业务逻 辑层主要面向业务应用,为表示层提供业务服务。

(3)数据持久层(Persistence layer):包含数据处理代码和数据存储代码。数 据持久层主要包括数据存取服务,负责与数据库管理系统(如数据库)之间的通信。

三个层次的每一层在处理程序上有各自明确的任务,在功能实现上有清晰的区分, 各层与其余层分离,但各层之间存有通信接口。

4.2 数据库需满足第三范式

  • 第一范式(1NF):强调的是列的原子性,即列不能够再分成其他几列。
  • 第二范式(2NF):首先是 1NF,另外包含两部分内容,一是表必须有一个主键;二是没有包含在主键中的列必须完全依赖于主键,而不能只依赖于主键的一部分。
  • 第三范式(3NF):首先是 2NF,另外非主键列必须直接依赖于主键,不能存在传递依赖。即不能存在:非主键列 A 依赖于非主键列 B,非主键列 B 依赖于主键的情况。

4.3 数据库对不同的用户要有明确的权限划分

  • 游客:只有查看公开数据的权限
  • 求职者:游客的权限+投递简历的权限
  • 招聘者:游客的权限+发布招聘消息+审核求职信息的权限
  • 系统管理员:具有系统提供的一切权限

五、预期规划

点击链接查看预期规划

六、组员贡献占比

队员学号 队员昵称 用时 完成度 分工 贡献占比
221600306 XRK 7h+1h 95% 系统体系结构设计、答辩 19.76%
221600307 Yellye 6h 90% 系统体系结构设计 14.33%
221600315 黎焕明 8h+1h 90% 关系模型设计、数据表设计、答辩 20.49%
221600319 Litm 4h 85% 类图改进、功能模块层次图、算法改进 11.3%
221600327 oirving 2.5h 85% 类图改进、功能模块层次图、评审表 8.24%
221600329 supermingjun 10h+1h 95% 任务安排、数据流图、类图改进、文档审核&整合、博文撰写、PPT制作、答辩 25.88%

附:第四次团队作业答辩——反思与总结

点击链接查看

推荐阅读