ER图(Entity-Relationship Diagram,实体关系图)用于描述系统需要管理哪些实体、每个实体有哪些属性,以及实体之间允许存在什么关系和基数。它关注数据结构,不负责表达操作步骤。
一、ER图的定义与适用边界
ER图是把业务对象、对象属性及其关系可视化的概念模型。它先帮助团队确认数据含义和业务规则,再为数据库设计提供稳定输入。
二、实体、属性、联系与基数
| 概念 | 回答的问题 | 订单系统示例 | 边界 |
|---|---|---|---|
| 实体 | 需要长期识别和管理的对象是什么? | 客户、订单、商品 | 不能只是一次性页面字段 |
| 属性 | 对象需要记录哪些事实? | 客户编号、订单状态 | 区分标识、必填、可选和派生 |
| 联系 | 对象之间遵循什么业务规则? | 客户提交订单 | 用动词命名并能复述 |
| 基数 | 每端最少和最多关联多少? | 客户0..N订单 | 同时检查最小值和最大值 |
三、概念边界的5个判断点
1. 先识别业务对象
从需求中的名词筛选可独立识别、需要持续管理且有生命周期的对象。
2. 再区分事实和动作
实体与属性保存事实,联系表达对象之间的业务规则;“审批”“发货”等动作不自动等于实体。
3. 用关系语言复述
把每条线读成“一个客户可以提交多笔订单”等完整句子,发现含糊关系就回到需求确认。
4. 明确模型层次
概念ER图先确认业务含义,逻辑模型再处理主键和关联实体,物理模型才进入字段类型与索引。
5. 划定不回答的问题
ER图不替代流程图、页面原型、接口时序或权限矩阵;需要这些信息时应使用相应模型。
四、把判断落成可评审模型的6步流程
1. 收集业务事实
整理对象、状态、数量、时间和参与者,保留来源句子而不是直接抄字段。
2. 形成实体候选
合并同义名词,排除临时计算值,并为每个候选写出唯一识别方式。
3. 补充核心属性
先保留能说明对象和业务规则的属性,避免在概念阶段堆叠实现细节。
4. 连接关系与基数
使用动词连接实体,分别确认必选/可选和一对一、一对多、多对多。
5. 邀请不同角色复核
让业务、产品和开发人员分别复述模型,记录分歧和待确认规则。
6. 再进入具体绘制
概念边界稳定后,使用模板或在线工具完成布局、批注、版本与分享。
五、概念边界里的3个实际判断
1. 订单不是商品的属性
订单和商品都需要独立管理;购买数量和成交单价属于订单明细这一段关系事实,不能简单塞入商品。
2. 客户与地址可能是一对多
如果一个客户可以保存多个地址,地址应有独立标识;如果只保存当前地址,才可能作为客户属性。
3. 状态变化不是新实体
订单状态是属性或状态历史,是否拆成实体取决于是否需要记录每次变化的时间、操作者和来源。
六、AI生成ER图时的3项人工检查
1. AI适合扩展候选
可让AI从需求文本提取名词、动词和数量约束,再由建模者确认哪些内容具有业务生命周期。
2. AI不能替你定规则
模型可能把页面字段、计算值或偶然动作误判为实体;主键、基数和边界必须回到业务事实。
3. 保留可追溯证据
记录需求来源、讨论结论、修改人和版本,让后续数据库或接口变化能回到概念决策。
七、交付前的概念模型检查清单
1. 实体可独立识别
每个实体有稳定标识或明确的识别规则。
2. 关系有两端基数
每条关系都标明最小值、最大值和可选性。
3. 图与语言一致
业务人员能只看图复述核心规则,开发人员能据此提出实现问题。
八、常见错误与修正方法
1. 把业务流程当成实体关系
流程图回答先后顺序,ER图回答对象、事实和关系。先确认问题,再决定画哪一种图。
2. 只复制模板不核对规则
模板里的实体、字段和基数只是示例假设,必须用真实业务和边界案例重新确认。
3. 先追求图形漂亮
布局可以最后调整;如果实体边界、主键或基数没有确定,越漂亮越容易掩盖模型问题。
九、按任务继续阅读
十、ER图是什么常见问题
ER图和流程图有什么区别?
ER图描述实体、属性、联系和基数;流程图描述步骤、判断与执行顺序。数据结构问题优先用ER图,过程问题优先用流程图。
ER图等同于数据库表结构图吗?
不完全等同。ER图可以停留在概念或逻辑层,表结构图通常进一步包含字段类型、索引、外键和约束。
ER图一定要画出所有属性吗?
概念模型不必列出全部字段,应先保留能解释业务和区分实体的关键属性,进入逻辑或物理设计再补齐实现细节。
ER图适合谁使用?
业务、产品、数据分析师和开发人员都可以使用。跨角色共同复核是它的重要价值。

