团队作业第五次—项目系统设计与数据库设计
作业描述
所属课程 | 软件工程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) | 否 | 无 | 头像链接 |
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 | 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) | 否 | 无 | 头像链接 |
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 | int(11) | 无 | 自增 | 简历投递id |
recruitment_id | int(11) | 无 | 无 | 招聘信息的id |
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% |
附:第四次团队作业答辩——反思与总结
点击链接查看
转载于:https://www.cnblogs.com/onlineservice666/p/10708099.html
团队作业第五次—项目系统设计与数据库设计相关推荐
- 项目系统设计与数据库设计(那周余嘉熊掌将得队)
作业格式 课程名称:软件工程1916|W(福州大学) 作业要求:团队作业第五次-项目系统设计与数据库设计 团队名称: 那周余嘉熊掌将得队 作业目标:进行数据库设计和系统设计,完善类图,绘制评审表 团队 ...
- Peekaboo——项目系统设计与数据库设计
这个作业属于哪个课程 软件工程实践2022年春-F班 这个作业要求在哪里 团队作业三-概要设计与数据库设计 这个作业的目标 继续完善设计类图,设计好系统和数据库.制定好计划和分工: 其他参考文献 cs ...
- 团队作业第4次-项目需求分析
作业描述 课程 软件工程1916|W(福州大学) 团队名称 修!咻咻! 作业要求 团队作业第4次-项目需求分析 团队目标 切实可行的计算机协会维修预约平台 开发工具 Axue RP 8 原型下载 修! ...
- 团队作业(五):冲刺总结
团队作业(五):冲刺总结 转载于:https://www.cnblogs.com/20175226wpy/p/10964911.html
- 项目小结之数据库设计
最近做了一个小项目完整的数据库设计,想总结一些设计上的所得,希望大家多多指教. 有时一个项目,普通程序员一般不会去接触数据库设计,一般都有专业的DBA或是老程序员去设计,下面是我推测的几点可能原因: ...
- 项目开发周期与数据库设计对比
项目开发周期与数据库设计对比 项目开发周期 数据库设计 需求分析 分析客户的业务和数据处理需求. 1. 收集信息(不怕多,但怕漏): 2. 标识对象: 3. ...
- 团队作业3 需求改进与系统设计
第一部分 需求与原型改进 1.1改进的原型 1.1.1 改进说明 改进了导航栏的样式,之前没有考虑到当鼠标滑动到导航栏的相关链接上时,背景颜色改变的问题.这样的改进,使得点击的链接更为醒目,整个页面更 ...
- 系统设计和数据库设计答辩问题汇总
总体来说大家的系统说明书格式普遍存在问题,格式不统一,也和作业规定中的没有具体明确有关系.有若干团队项目系统说明书完成度不高. 那周余嘉熊掌将得队 追光的人 echo 基于云的胜利冲锋队 待就业六人组 ...
- 第五十二期:Java开发数据库设计的14个技巧,你知道几个?
可以是一对一.一对多.多对多的关系.在一般情况下,它们是一对一的关系:即一张原始单据对应且只对应一个实体.在特殊情况下,它们可能是一对多或多对一的关系,即一张原始单证对应多个实体,或多张原始单证对应一 ...
最新文章
- Ansible 基础-介绍
- ✅书单推荐の自我管理篇✅
- boost::gil::is_planar用法的测试程序
- [LeetCode]93.Restore IP Addresses
- 什么是document对象?如何获取文档对象上的元素?_dom对象
- 2021年下半年系统集成项目管理工程师案例分析真题及答案解析
- Mysql事务探索及其在Django中的实践(二)
- 你们觉得这个时代好还是父母那个时代好?
- go 写文件_GO 文档笔记
- 无法在驱动器0分区上安装windows 解决方法
- 二级域名会不会分散主域名权重
- 如何使用 Font Book 在 Mac 上添加或删除字体?
- dex2jar java 1.8_dex2jar v2.1 最新版本打包
- I2C 时序详解,精确到每一个时钟
- 计算机软考集成项目管理工程师,计算机软考系统集成项目管理工程师
- CTF_crypto常见加密密文特征
- were passed to component but could not be automatically inherited because component renders fragment
- C# 让程序开机自动运行的方法
- rom是计算机硬件吗,rom,教你手机中ram和rom的区别
- Java学习笔记【入门】(1):Java版本介绍
热门文章
- html中引用名言标签,CSS3 培根名人名言引用全屏居中样式设计
- CGCS2000国家大地坐标系参数
- C#“Multiple assemblies with equivalent identity have been imported”错误
- Androi事件分发( 二),解决事件冲突
- 安徽省大数据与人工智能竞赛经验分享-3【从赛题中分析比赛需要的技能】
- thinkphp6+layui BBS社区论坛系统源码分享,支持适配移动端附截图
- nginx反向代理配置解决不同域名默认页面不同问题
- ensp路由器注册_使用ensp进行简单的路由器互连实验
- Reporting Services 配置工具
- 第一次开发EOS区块链的经验