返回指南首页
图型知识14 分钟

画ER图别上来就贴表:先理清核心关系

讲清 ER 图是什么、表字段和外键如何组成图,以及工具从 SQL DDL 中识别哪些内容。

ER 图的重点不是把所有字段贴满,而是让读者看懂业务对象为什么这样关联。

ER 图用来说明数据库里的“对象”和“关系”。在毕业论文里,它通常放在数据库设计章节前半部分,让读者先看到系统有哪些核心实体,以及这些实体之间是一对一、一对多还是多对多。字段表负责讲字段类型和约束,ER 图负责讲结构来源。

把 ER 图画好,第一步不是打开绘图软件,而是先看清业务名词。用户、项目、图表、导出记录这类需要独立保存、拥有主键、还能被别的对象引用的东西,才适合成为实体。状态、类型、备注、创建时间通常只是字段,不必都画成实体。

这张图由哪些东西组成

本工具的 ER 图来自 SQL 建表脚本。后端会解析 CREATE TABLE,把表识别为实体,把列识别为字段,把外键识别为关系。

组件来自 SQL 的哪里图里表达什么
实体CREATE TABLE user_account (...)一张业务表或概念对象
显示名称表注释 COMMENT='用户表'图中更适合论文阅读的中文名称
字段表内列定义实体拥有的属性
主键PRIMARY KEY实体的唯一标识
唯一约束UNIQUE帮助判断关系基数
关系FOREIGN KEY ... REFERENCES ...表与表之间的引用关系

字段注释也会被读取,例如 user_name VARCHAR(80) COMMENT '用户名' 会被解析成字段显示名称,适合后续字段表、数据库属性图或字段级说明使用。ER 图本身主要展示实体名称、关系和字段数量,不会把每个字段注释都铺在图上;如果需要讲字段细节,应放到字段表或属性图里。

可以粘贴什么样的 SQL

工具支持常见 DDL 写法:表内主键、唯一约束、表内外键、字段内联 REFERENCES,以及 ALTER TABLE ... ADD CONSTRAINT ... FOREIGN KEY。表注释和字段注释可以用 MySQL 风格 COMMENT,也可以用 COMMENT ON TABLECOMMENT ON COLUMN

CREATE TABLE project (
  id BIGINT PRIMARY KEY COMMENT '项目ID',
  project_name VARCHAR(120) NOT NULL COMMENT '项目名称'
) COMMENT='项目表';

CREATE TABLE diagram_document (
  id BIGINT PRIMARY KEY COMMENT '图表ID',
  project_id BIGINT NOT NULL COMMENT '所属项目ID',
  title VARCHAR(120) COMMENT '图表标题',
  CONSTRAINT fk_document_project FOREIGN KEY (project_id) REFERENCES project(id)
) COMMENT='图表文档表';

这段脚本会生成“项目表”和“图表文档表”两个实体,并根据 project_id 外键生成一条关系。因为多个图表文档可以指向同一个项目,关系会被理解为从文档到项目的多对一。

中间表不是越多越专业

多对多关系通常会落成中间表,例如 student_course 同时外键指向学生和课程。工具能识别这类候选中间表,并支持隐藏中间表,把两端实体折叠成多对多关系。是否隐藏取决于论文想讲什么:如果你要解释选课记录本身的字段,就保留中间表;如果只想让读者看到“学生和课程是多对多”,折叠会更清楚。

还有一种情况是直接关系太多、图变成毛线团。工具支持裁剪部分可推导的直接关系,但论文里不要把裁剪当成“删除设计”。如果图里省略了某些关系,正文要说明是为了简化阅读,完整约束仍以字段表或 DDL 为准。

ER 图和数据库属性图别混用

ER 图看关系,数据库属性图看单表字段。属性图会把一个表放在中心,把字段作为属性节点围绕展开,适合解释某张核心表的字段构成;ER 图则适合说明多张表之间的外键关系。数据库设计章节通常可以先放 ER 图,再挑一两张核心表用字段表或属性图讲细节。

如果你把所有字段都塞进 ER 图,图会很密;如果只放一堆字段表,读者又看不见表与表之间的关系。两者配合,论文才像完整设计。

正文要把图和表接起来

图后不要只写“系统 ER 图如下”。可以这样写:

如图 4-1 所示,系统以项目表为核心组织图表文档和导出记录。一个项目可包含多张图表文档,因此 diagram_document 表通过 project_id 关联 project 表;导出记录依赖具体图表生成,因此保留 diagram_id 作为外键。

这段话让评阅者知道你的外键不是随手连线,而是从业务关系推导出来的。

定稿前检查

  • SQL 是否包含真实的主键、外键和必要注释。
  • 实体名是否和后面的字段表一致。
  • 多对多关系是否解释了中间表。
  • 图里省略或折叠的关系,正文是否说清楚原因。
  • 字段细节是否放到字段表里,而不是把 ER 图压到看不清。
#ER图 #数据库设计 #SQL建模 #外键关系

绘图太麻烦?

使用云朵绘图,新一代计算机论文绘图工具,AI一键绘图!

开始体验