数据库设计心得
本组项目是某高校就业平台系统,页面与功能比较繁杂,可以大致分为4个端:学校端,学生端,企业端,管理员端
业务需求
完成企业招聘
学生可以向企业投简历,企业可以发布岗位,企业和学校合办宣讲会,学生可以参加
初步设计
四类账户每种需要一个表来记录账户信息,也便于进行账户管理
此外根据业务需求也确定了 简历、宣讲会、岗位、公告、面试信息等相关实体类
为了便于后台管理,为绝大部分实体类设置了自增主键
按照数据库设计范式设置了相应的外键约束
后续修正
在开发过程中注意到一些在初步设计中没有考虑到的业务需求,并对数据库进行修改。
例如受限于表的范式约束和业务逻辑的便利性,添加了额外的“被标记的岗位”表,实现对特定账户的个性化岗位筛选
添加了学校账号的state字段实现管理员账号对学校账号的管理等
在β版本的计划中,可能还需要引入日志系统支持进一步的数据分析
心得体会
表是为完成业务需求设计的,要保证能够为所有对应业务实现支撑。
在我们的团队项目中,数据量十分有限,没有必要过于担忧性能问题
充分的外键约束是数据库完整性的有力保证
面对考虑不周的业务需求,优先考虑改变业务逻辑而不是修改数据库,后者可能导致严重影响项目中其他部分的正常进行。
全局ER图如下
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异