实体图
实体图展示数据库中的表,以及表中各行之间的关系。它以 entity 及其标题开头。
entity A small shop
Customer
id: number [key]
name: text
email: text [unique]
Order
id: number [key]
customer: number [ref]
placed: date
Product
id: number [key]
title: text
price: number
Line
order: number [key, ref]
product: number [key, ref]
quantity: number
Customer 1-* Order: places
Order 1-1..* Line: holds
Product 1-* Line: appears in

设置
| 设置 | 别名 | 值 |
|---|---|---|
direction |
flow, orientation, layout, rankdir |
down(默认)、right、up 或 left |
实体和属性
实体名单独写在一行上,其属性缩进写在它的下方。属性由一个名称、一个冒号和一个类型组成,之后是方括号中的键:
| 键 | 别名 | 显示为 |
|---|---|---|
key |
pk, primary, primary key, id |
PK,且名称带下划线 |
ref |
fk, foreign, foreign key, reference |
FK |
unique |
uk |
UK |
id number —— 名称和类型之间没有冒号 —— 也能读取。写在实体之外的“名称、冒号和类型”会被指出:它应该缩进写在某个实体下方。
关系
关系是一条两端各带一个计数的连线,以鸦脚符号绘制:Customer 1-* Order: places。每一端是以下四种之一:
| 计数 | 别名 | 含义 |
|---|---|---|
1 |
恰好一个 | |
0..1 |
零个或一个 | |
1..* |
1..n |
一个或多个 |
* |
0..*, 0..n, n, many |
任意数量 |
两端之间用一个、两个或三个短横线相连,标签写在冒号之后。Mermaid 用字符画出的鸦脚符号也能读取:||--o{ 表示一对任意数量,|o--|{ 表示零或一对一或多个;用两个点代替短横线 —— }|..|| —— 会把连线画成虚线,表示非标识关系。任何一端都不可能出现的计数,例如 2-*,会被指出。
普通箭头在实体之间绘制普通连线。
分组和注释
group Name 会为缩进在其下方的实体加上边框。note Entity: what to say 会在某个实体旁边放置一条注释。