易君召
发布于 2026-08-31 / 作者:易君召 / 18 阅读
0

数据库概念模型设计(ER 模型)完整流程

概念模型:不关心具体数据库、不关心表、字段类型,只描述业务里有哪些实体、实体的属性、实体之间的关系,输出产物一般是 E‑R 图(实体‑联系图)

一、核心 4 个要素

  1. 实体 (Entity):业务中独立存在的对象,名词。例:学生、课程、订单、客户。用矩形表示。

  2. 属性 (Attribute):实体的特征。例:学生(学号、姓名、年龄)。椭圆表示。

  3. 主键(标识符):唯一标识实体的属性,下划线标记,如学号。

  4. 联系 (Relationship):实体之间的关联,动词。例:学生选课、客户下订单。菱形表示。

联系基数(最重要):

  • 1:1 一对一:一个 A 对应一个 B,如用户‑用户详情

  • 1:N 一对多:一个 A 对应多个 B,最常用。部门 (1)‑员工 (N)

  • M:N 多对多:学生 (M) 选课 课程 (N),多对多后续必须拆成两个一对多,引入中间实体

二、完整设计步骤

步骤 1:需求分析,梳理业务

收集业务需求、业务流程、业务表单,回答:

  1. 系统要管理哪些业务对象?

  2. 对象有哪些信息要保存?

  3. 对象之间发生什么业务动作?

输出:业务名词、动词清单。 示例教务系统:学生、班级、课程、教师;选课、授课。

步骤 2:识别实体

从业务名词筛选实体,判断标准:

  • 需要独立保存信息;

  • 有多个实例;

  • 不能依附别的对象单独存在。

❌不要把属性当成实体:“性别” 只是属性,不是实体。

示例教务实体:学生、班级、课程、教师。

步骤 3:确定每个实体的属性 & 主键

  1. 列出实体全部属性;

  2. 选出主键:唯一、非空、不变;

  3. 区分简单属性 / 复合属性;单值 / 多值属性。

例学生实体: 学生(学号,姓名,出生日期,手机号)

步骤 4:识别实体之间的联系,确定联系类型

找业务动词作为联系名称,判断是 1:1 /1:N /M:N。

  1. 班级与学生:1 对多,一个班级多名学生,学生属于一个班级。

  2. 教师与课程:多对多,一个老师可以教多门课,一门课可以多个老师教。

  3. 学生与课程:多对多,学生选多门课,课程被多名学生选。

✅多对多联系本身也可以带属性:选课联系带有成绩。

步骤 5:绘制 E‑R 图(概念模型产物)

规范绘图:

  • 矩形 = 实体;椭圆 = 属性;菱形 = 联系;连线连接实体‑联系。

  • 主键属性下划线;联系线上标注基数(1、N、M)。

注意:概念模型阶段不转表,不写 varchar/int,只做业务抽象。

步骤 6:校验、评审概念模型

检查几个问题:

  1. 是否遗漏业务实体、属性?

  2. 联系基数是否符合真实业务?(很多设计错误出在这里)

  3. 是否存在冗余实体?

  4. 多值属性、多对多关系处理是否正确?

  5. 是否可以支撑全部业务查询需求?

评审通过,概念模型完成。下一步进入逻辑模型设计(E‑R 转关系表)

三、常见特殊情况处理

  1. 多值属性:比如一个用户多个手机号。概念模型标记多值,逻辑层转为独立子实体。

  2. 复合属性:地址(省、市、区),概念层可以作为复合属性。

  3. 弱实体:没有独立主键,必须依赖另外实体,比如订单明细,依赖订单。

  4. 自联系(递归联系):员工与上级员工,实体自己和自己建立联系。

四、概念模型 vs 逻辑模型 vs 物理模型

模型

关注点

产出

概念模型

业务,和数据库无关

E‑R 图,实体‑属性‑关系

逻辑模型

关系表、字段、外键、范式,无关具体数据库

关系模式(表结构)

物理模型

数据库实现,字段类型、长度、索引、存储引擎

建表 SQL

概念模型 → 逻辑模型 (E‑R 转表) → 物理模型。

五、E‑R 转关系模式简要规则(概念模型完成后下一步)

  1. 实体直接转一张表,实体属性为字段,实体主键作为表主键。

  2. 1:N 联系:不在新建表,在 N 的那一侧加入 1 端实体主键作为外键。

  3. M:N 联系必须新建中间表,中间表主键是两端实体主键的组合;联系自带属性放入中间表。

  4. 1:1 联系:任意一方加入另一方主键做外键。

举个极简教务示例

概念 E‑R:

  • 学生 (学号,姓名)

  • 课程 (课程号,课程名)

  • 学生与课程:M:N,联系 “选课” 带属性:成绩

转逻辑:

  1. 学生 (学号, 姓名)

  2. 课程 (课程号, 课程名)

  3. 选课 (学号,课程号,成绩) 中间表,复合主键 (学号,课程号)

六、实操小建议

  1. 工具:PowerDesigner、Navicat ER 图、Draw.io、ProcessOn 都可以画 E‑R;

  2. 先业务,后画图,不要上来直接建表;

  3. 概念模型不要引入技术字段,不要加 create_time、is_delete 这类物理层字段。


本文原创作者:易君召,详见:https://www.yijunzhao.cn/authors/yijunzhao,转载请注明出处。

原文链接 https://www.yijunzhao.cn/archives/database-er-model-conceptual-design-process-guide

欢迎访问 小易撩挨踢

https://www.yijunzhao.cn/