实体与属性
在所属实体下组织设计讨论需要的字段。
数据库关系建模
通过上方 Mermaid ER 图编辑器描述数据库实体、键与关系。用基数符号区分必选和可选记录,再导出 ERD 用于表结构评审。
参考下方客户、订单与订单项示例,分别检查关系两端的约束。已有工作区草稿会优先恢复。
ER 图帮助解释记录如何关联、哪些字段用于标识以及关系是否可选。它描述模型,不会连接或检查数据库。
在所属实体下组织设计讨论需要的字段。
通过端点符号区分一个、零或一个、一个或多个、零或多个。
用 PK、FK、UK 标记字段角色,帮助理解身份与引用。
用下单、包含等简短动词说明实体为什么关联。
先聚焦一部分表结构,再逐条核对每个关系的两端。
声明 erDiagram,列出实体,按“类型 名称 键标记”添加关键属性。
使用符合必选性和数量约束的端点符号连接实体,并添加关系动词。
对照真实表结构检查预览,导出 SVG 或 PNG,并把源码与结构文档一起保留。
|| 表示恰好一个,o| 或 |o 表示零或一个,}| 或 |{ 表示一个或多个,}o 或 o{ 表示零或多个。左右端点使用对应方向的符号。
erDiagram
CUSTOMER ||..o{ ORDER : 下单
ORDER ||--|{ LINE_ITEM : 包含先写类型,再写属性名,必要时标记 PK、FK 或 UK。同一属性有多个键角色时,用逗号分隔。
erDiagram
ORDER {
string id PK
string customer_id FK
date created_at
}-- 表示标识关系,.. 表示非标识关系。此示例中的订单拥有自己的 ID,并通过字段引用客户。
erDiagram
CUSTOMER ||..o{ ORDER : 下单
CUSTOMER {
string id PK
}
ORDER {
string id PK
string customer_id FK
}Mermaid 可以直接绘制多对多关系。关系数据库模型中,关联实体通常更便于记录两端引用以及选课时间等关系属性。
erDiagram
STUDENT ||--o{ ENROLLMENT : 拥有
COURSE ||--o{ ENROLLMENT : 包含
ENROLLMENT {
string student_id PK, FK
string course_id PK, FK
date enrolled_at
}客户—订单—订单项模型说明可选订单与必选订单项的基数,同时展示与关系有关的键标记。
erDiagram
CUSTOMER ||--o{ ORDER : 下单
ORDER ||--|{ LINE_ITEM : 包含
CUSTOMER {
string id PK
string email UK
}
ORDER {
string id PK
string customer_id FK
date created_at
}
LINE_ITEM {
string order_id FK
string sku
int quantity
}|| 表示恰好一个,o{ 表示零或多个,|{ 表示一个或多个。完整关系还需要结合另一端的符号理解。
不会。PK、FK、UK 是图中的字段注释,当前编辑器不连接数据库、不读取结构,也不检查外键值。
可以直接用 Mermaid 表示多对多;描述关系数据库时,可考虑增加关联实体,记录两个引用和选课日期等关系属性。
它们分别表达标识关系与非标识关系,与端点的数量和可选性符号是不同维度。
保留能解释身份、关联或当前设计问题的字段。如果无关列影响阅读,可以省略。
讨论方法、接口、继承和软件职责时使用类图;讨论持久化实体、键和数据库基数时使用 ER 图。
比较 ER 图语法
比较语法、关系表示、数据库建模深度和文本 ERD 的维护方式。
阅读 ER 图对比 →