# Mermaid ER 图速查表

实体、它们的字段，以及它们之间的基数。

## 实体与属性

花括号里装着字段。类型在前，名字在后。

```mermaid
erDiagram
  CUSTOMER {
    string name
    string email
  }
  ORDER {
    int orderNumber
    date placedAt
  }
```

![两个实体框 Customer 和 Order，各自在表格里列着两个属性。](/diagrams/er/entities.svg)

## 键

PK、FK 和 UK 分别标出主键、外键和唯一键。

```mermaid
erDiagram
  CUSTOMER {
    string custNumber PK
    string email UK
  }
  ORDER {
    int orderNumber PK
    string custNumber FK
  }
```

![两个实体框，它们的属性行上带着小键标记：PK、UK 和 FK。](/diagrams/er/keys.svg)

## 基数

两端的标记说明数量。一根竖杠是一个，燕尾脚是多个。

```mermaid
erDiagram
  CUSTOMER ||--o{ ORDER : places
  ORDER ||--|{ LINE_ITEM : contains
  PRODUCT }o--o{ TAG : tagged
```

![三个实体框由连线相连，每根线的一端是竖杠，另一端是圆圈加燕尾脚。](/diagrams/er/cardinality.svg)

## 给关系加标签

冒号后面的文字是两个实体之间的动词。超过一个词就要加引号。

```mermaid
erDiagram
  CUSTOMER ||--o{ ORDER : "places an order"
  ORDER ||--|{ LINE_ITEM : contains
```

![两个实体框由标着 places an order 和 contains 的连线相连。](/diagrams/er/labels.svg)

## 在 Mernyx 里画出来

打开一个 .mmd 文件，在画布上挪一个节点，源码跟着走。macOS 原生，不经过浏览器。
