人才推荐系统数据库设计

课程需求,需要开发人才推荐系统,故设计了此数据库,仅用于学习。

此项目一共建了11张表,分别是用户表 t_user,用户角色表 t_role,用户权限表 t _permission,角色与权限关系表 t_role_permission,部门表 t_department,职能表 t_job,简历表 t_resume ,招聘信息表 t_recruit,招聘流程表 t_recommend,人才库 t_talent,积分详情表 t_score。

设计流程

1、先用powerdesigner画了CDM(Concept Data Model,概念数据模型)

如图

人才推荐系统数据库设计_第1张图片

2、再由CDM导出PDM(Physical Data Model,物理数据模型)

如图:
人才推荐系统数据库设计_第2张图片

右击表名,选择sql preview,可以看到每个表的sql语句。

人才推荐系统数据库设计_第3张图片

3、然后由PDM将设计成果直接导入数据库,同时导出相应的数据库文档,以供项目组开发人员阅读。

数据库设计说明

1、为了减小耦合,没有设置外键。
2、可扩展性:
例子:比如用户,可以在角色表中添加用户角色,然后在角色与权限表中加上该角色所拥有的权限即可。
3、冗余性
数据库设计有适当的冗余,是为了提高系统性能,比如简历表和人才库的gender、degree、is_study、major等字段重复,每次查询人才库都是需要这些字段的,是为了在查询人才库的时候不再去查询简历表再匹配数据,较少耗时。
除此外,还有高级冗余,简历表的字段is_study是否在读与毕业时间gra_time,事实上gra_time可以推断出是否在读,但是由于项目需求,是否在读也要写成一个字段。

你可能感兴趣的:(Java)