本组项目是某高校就业平台系统,页面与功能比较繁杂,可以大致分为4个端:学校端,学生端,企业端,管理员端
业务需求
完成企业招聘
学生可以向企业投简历,企业可以发布岗位,企业和学校合办宣讲会,学生可以参加
初步设计
四类账户每种需要一个表来记录账户信息,也便于进行账户管理
此外根据业务需求也确定了 简历、宣讲会、岗位、公告、面试信息等相关实体类
为了便于后台管理,为绝大部分实体类设置了自增主键
按照数据库设计范式设置了相应的外键约束
后续修正
在开发过程中注意到一些在初步设计中没有考虑到的业务需求,并对数据库进行修改。
例如受限于表的范式约束和业务逻辑的便利性,添加了额外的“被标记的岗位”表,实现对特定账户的个性化岗位筛选
添加了学校账号的state字段实现管理员账号对学校账号的管理等
在β版本的计划中,可能还需要引入日志系统支持进一步的数据分析
心得体会
表是为完成业务需求设计的,要保证能够为所有对应业务实现支撑。
在我们的团队项目中,数据量十分有限,没有必要过于担忧性能问题
充分的外键约束是数据库完整性的有力保证
面对考虑不周的业务需求,优先考虑改变业务逻辑而不是修改数据库,后者可能导致严重影响项目中其他部分的正常进行。
全局ER图如下