ERD 图表
创建实体关系图(ERD)来为数据库结构和数据关系建模。
什么是 ERD?
实体关系图用于可视化:
- 实体:数据库表或对象
- 属性:实体的特性
- 关系:实体之间如何相互连接
- 基数:关系的性质(一对一、一对多等)
创建 ERD
添加实体
- 在工具栏中选择表格工具,并在画布上点击为每个实体创建一个表格
- 使用第一行作为实体名称,后面的行用于属性
有关编辑行、列和单元格文本的内容,请参阅表格。
每个实体通常包含:
- 实体名称(表头)
- 主键字段
- 其他属性
添加关系
- 选择连接器工具
- 在相关实体之间画一条线
- 为基数设置合适的箭头
鸦脚记号法
鸦脚记号法是最常见的 ERD 样式。它使用连接器端点的符号来表示基数。
基数符号
| 符号 | 含义 |
|---|---|
|(单线) | 一 |
○(圆圈) | 零(可选) |
< 或 >(鸦脚) | 多 |
常见关系
| 记法 | 起点 | 终点 | 含义 |
|---|---|---|---|
| 一对一 | | | | | 每条记录恰好对应一条记录 |
| 一对多 | | | < | 一条记录对应多条记录 |
| 多对多 | < | > | 多条记录对应多条记录 |
| 零或一 | ○| | | | 可选的单一关系 |
| 零或多 | ○< | | | 可选的多重关系 |
应用鸦脚箭头
- 选择实体之间的一个连接器
- 在检查器的样式标签页中,进入连接器部分
- 从内置箭头列表中选择起始箭头和结束箭头。ERD 箭头包括:
| 箭头 | 典型含义 |
|---|---|
| 双线段 | 恰好一个(‖) |
| 线段球 | 零个或一个(○|) |
| 鱼尾 | 多个 |
| 鱼尾线 | 一个或多个(|<) |
| 鱼尾球 | 零个或多个(○<) |
鱼尾段和鱼尾球圆是"一个或多个"与"零个或多个"端点的另一种画法。
您也可以右键点击连接器的端点来选择其箭头。
ERD 工作流示例
步骤 1:识别实体
以电子商务数据库为例:
- 客户
- 订单
- 产品
- 订单项
步骤 2:定义属性
客户
- customer_id(主键)
- name
- phone
订单
- order_id(主键)
- customer_id(外键)
- order_date
- total
步骤 3:绘制实体
- 为每个实体使用表格工具创建一个表格
- 将实体名称添加为表头
- 在每个表格中列出属性
- 标记主键(PK)和外键(FK)
步骤 4:添加关系
- 从"客户"到"订单"绘制连接器
- 在"客户"端设置"一"(|)
- 在"订单"端设置"多"(<)
- 这表示:一个客户有多个订单
步骤 5:标注关系
为连接器添加文本标签:
- "下单"(客户 → 订单)
- "包含"(订单 → 订单项)
- "属于产品"(产品 → 订单项)
ERD 最佳实践
布局
- 让相关实体靠得更近
- 使用一致的实体大小
- 按网格模式对齐实体
- 尽量减少连接器交叉
命名
- 实体使用单数名词(Customer,而不是 Customers)
- 使用一致的命名约定(camelCase、snake_case)
- 用动词标注关系
文档记录
- 为所有实体注明主键
- 清楚地标出外键
- 考虑添加数据类型
- 注明任何约束
使用技巧
- 从文本开始:使用编辑 → 插入 Mermaid(PRO)粘贴一段 Mermaid
erDiagram以获得初稿,然后再进行完善——参见 Mermaid 支持 - 使用自动布局:帮助整理复杂的图表
- 对相关实体分组:形成逻辑区块
- 导出用于文档:纳入技术规范和 wiki
- 版本控制:随着数据库演进保存各个迭代版本