# Mermaid ER 図のチートシート

エンティティと、そのカラム、そしてエンティティ間の基数。

## エンティティと属性

波括弧の中にカラムが入ります。型が先、名前が後です。

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

![エンティティ 2 つ、Customer と Order。どちらもテーブルの中に属性を 2 つずつ並べています。](/diagrams/er/entities.svg)

## キー

PK、FK、UK はそれぞれ主キー、外部キー、一意キーを表します。

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

![属性の行に小さなキーの印が付いたエンティティ 2 つ。PK、UK、FK が読めます。](/diagrams/er/keys.svg)

## 基数

それぞれの端の印がいくつあるかを示します。縦棒が 1、鳥の足が多です。

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

![エンティティ箱 3 つが線で結ばれ、片方の端には縦棒、もう片方の端には円と鳥の足があります。](/diagrams/er/cardinality.svg)

## 関係にラベルをつける

コロンのあとのテキストが、2 つのエンティティのあいだの動詞です。2 語以上なら引用符が必要です。

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

![エンティティ 2 つ。places an order と contains のラベルが振られた 2 本の線で結ばれています。](/diagrams/er/labels.svg)

## Mernyx で描いてみる

.mmd ファイルを開いて、キャンバスでノードを動かしてみてください。ソースコードもついてきます。macOS ネイティブで、ブラウザは介在しません。
