毕设的数据库设计章节,从来不是只要一张 E-R 图:整体图讲关系,子图讲属性,两张都得交。
手工画最痛的地方不是画,是保持一致——整体图改一个实体名,9 张子图全要跟着改。而多数在线工具只能出一张图,子图还得自己拆。
本文用捷码AI 实测一个真实项目:一次 SQL 导入,导出 1 张整体图 + 9 张子图。
01|整体图和子图,分别解决什么问题
先把两张图的分工说清楚,这决定了你要不要都画。
| 整体 E-R 图 | 子 E-R 图 | |
|---|---|---|
| 画什么 | 全部实体 + 实体之间的联系 | 单个实体的全部属性 |
| 回答什么 | 系统里有哪些对象,彼此什么关系 | 这个对象具体有哪些字段 |
| 放在文档哪一章 | 概念结构设计 → 整体 E-R 图 | 概念结构设计 → 各实体局部图 |
| 常见画法 | 矩形(实体)+ 菱形(联系)+ 连线标基数 | 矩形(实体)+ 椭圆(属性) |
| 数量 | 通常 1 张 | 每个核心实体 1 张 |
只画整体图的后果:答辩时被问"毕业生这张表有哪些字段",你得翻到数据字典去念。
只画子图的后果:看不出实体之间怎么关联,评委会问"专业和毕业生什么关系",图上找不到。
所以两张都要,而且必须保持一致——整体图改了实体名,子图也得改。这是纯手工画最痛苦的地方。
02|捷码AI 实测:导入 SQL
2.1 从 SQL 导入开始
捷码AI Studio 首页提供四种起点,已有建表语句的直接选SQL 导入,粘贴或上传.sql文件后点「开始解析」:
解析完成后会先预览识别到的表、字段与关系,确认无误再导入项目。
2.2 进入 E-R 图工作区
导入后,左侧「系统视图」里就是 E-R 图入口。工作区布局是:
- 左侧画布:整体 E-R 图,可增删实体、调整关系、拖动布局
- 右侧数据字典:逐表列出字段、类型、唯一键、外键引用
画布上的改动和数据字典是联动的——在数据字典里加一个字段,画布上对应的实体会同步。
03|实测结果一:整体 E-R 图
案例项目导出的整体 E-R 图:
读这张图按四步走:
第一步:找实体。案例里有 11 个业务对象:毕业生、用人单位、专业、地区、单位级别、需求信息、需求明细、系统管理员、数据备份记录、数据恢复记录、级别变更记录。
第二步:看主线关系。沿着「毕业生—专业」「用人单位—单位级别」「用人单位—地区」「用人单位—需求信息」这几条主线读。
第三步:核对基数。连线旁的 1、N 表示数量关系:
- 一个专业有多个毕业生 → 专业 1 : N 毕业生
- 一个单位属于一个级别 → 单位 N : 1 级别
- 需求信息与需求明细 → 1 : N
第四步:检查有没有孤立实体。如果一个实体没有任何连线,要么它确实是独立字典表,要么关系漏了(回到数据字典补外键引用)。
04|实测结果二:9 张子 E-R 图
同一个项目,捷码AI 同时导出了9 张子 E-R 图,每张展开一个实体的属性。挑几张看:
系统管理员—— 账号、密码、姓名、角色等属性:
专业—— 专业编码、名称、所属院系:
用人单位—— 这是属性最多的实体之一,含账号状态、单位性质、所属行业、所在地区、单位级别等:
毕业生—— 学号、姓名、性别、专业、联系方式等:
需求信息—— 用人单位发布的招聘需求:
级别变更记录—— 记录单位级别的变更历史:
其余几张(单位级别、数据备份记录、数据恢复记录、地区)结构思路一致,每个实体一张,属性逐个展开:
05|子图生成的质量怎么判断
捷码AI 会按实体自动展开子图,但属性归到哪个实体、该不该拆,仍然要你按业务判断。三条核对标准:
标准一:属性归属对不对。
典型错误是把一次业务行为的记录塞进基础实体。比如"成绩"不该是「学生」的属性——它更像一次选课行为的记录,应该独立成实体或放到关联实体上。
标准二:标识字段有没有标出来。
主键和业务唯一键应该能一眼看出(通常带下划线或加粗)。学号、课程编码、单位编号这类标识字段尤其重要。
标准三:派生属性要不要画。
像"年龄"可以从出生日期算出来,属于派生属性,画图时可以省略或用虚线区分。但数据字典里必须保留,因为建表时可能真的要存这个字段。
06|导出与使用
捷码AI 的图纸导出是按类型分文件夹的:
01-系统图表/ ├─ 01-E-R图/ ← 1 张整体图 + 9 张子图 ├─ 02-功能结构图/ ├─ 03-系统架构图/ ├─ 04-流程图/ ├─ 05-数据流图/ ├─ 06-UML 类图/ ├─ 07-时序图/ └─ 08-用例图/E-R 图是独立目录,整体图和子图分别成文件,不是合并成一张大图。这样放进论文时可以直接按小节取用。
导出后的一个实际好处:整体图和子图来自同一份结构,不会出现"整体图上有 11 个实体、子图只画了 8 个"的不一致。
07|子图编号怎么排进论文
图纸拿到手,还要按学校要求编号。建议这样排:
| 图号 | 内容 | 位置 |
|---|---|---|
| 图 3-1 | 系统整体 E-R 图 | 3.x 概念结构设计 |
| 图 3-2 | 毕业生实体 E-R 图 | 3.x.1 |
| 图 3-3 | 用人单位实体 E-R 图 | 3.x.2 |
| 图 3-4 | 专业实体 E-R 图 | 3.x.3 |
| … | … | … |
两个细节:
- 正文必须有引用。写"毕业生实体的属性如图 3-2 所示",而不是只贴图不说话。
- 图号与文件名对应。导出目录里的文件按实体命名,编号时对着改,不容易错。
08|从 E-R 图继续往下走
E-R 图(整体 + 子图)定稿后,同一份结构还能继续产出毕设要的其他材料:
| 产物 | 与 E-R 图的关系 |
|---|---|
| 数据字典 | E-R 图里每个实体的属性清单 |
| 三线表 | 数据字典的学术表格版,直接进设计文档 |
| 建库 SQL | E-R 图的关系模式转成CREATE TABLE+ 外键约束 |
| 设计文档 | 概念结构设计、逻辑结构设计章节复用这些图 |
| 开题报告 / 答辩 PPT | 引用同一套图,数字不会对不上 |
这是"一次导入、多处复用"的价值:改一次结构,所有产物重新生成即可,不用逐个文档去改。
09|小结
回到最初的问题:SQL 转 ER 图,为什么需要整体图 + 子图?
- 整体图讲关系,子图讲属性,两张回答不同问题,毕设通常都要;
- 手画最痛的是保持一致,整体图改一次子图全要跟着改;
- 捷码AI 从同一份结构同时导出,1 张整体 + N 张子图,天然一致;
- 生成的子图仍需核对:属性归属、标识字段、派生属性这三条要人工过一遍。
最后一句话:E-R 图不是画给老师看的,是画给你自己看的。认真画完整体图和子图,你对这套数据模型的理解会完全不一样——答辩时被问到任何一张表,你都能立刻说出它有哪些字段、和谁关联。