Dr.ERD를 사용하려면 JavaScript를 활성화해야 합니다. Dr.ERD는 Mermaid를 지원하는 로컬 우선 ERD 편집기입니다.

Mermaid ERD の読み込みと書き出し — 初心者ガイド

Mermaid の erDiagram テキストを Dr.ERD に貼り付けて編集できるモデルとして開き、必須カラムと 2 つのリレーションを仕上げたうえで、再び Mermaid として書き出す手順を説明します。例は 3 テーブルの注文モデルです。

現在の記事: Mermaid ERD の読み込み・書き出し

1. Dr.ERD が Mermaid を受け渡す仕組み

Mermaid の erDiagram 構文は、テーブルとカラム、リレーションをテキスト 1 枚で表す書き方です。Dr.ERD は .mmd・.mermaid ファイルや貼り付けたテキストを読み込み、編集できるモデルとして開きます。仕上げたモデルは同じテキスト形式で書き出せます。このガイドでは 3 テーブルの注文モデルを Mermaid から読み込み、整えてから再び Mermaid として書き出します。

  • 読み込み: .mmd・.mermaid ファイル、または貼り付けた Mermaid テキストを新しいモデルとして開きます。
  • 書き出し: モデルを Mermaid テキストとして保存します。書き出し形式の「Mermaid · MMD」です。
  • 標準の erDiagram 構文には、配置(座標)、データ辞書、NOT NULL・既定値・自動採番といった詳細な制約を書く場所がありません。Dr.ERD は書き出し時に図の下へ %% drerd-metadata-v1 コメントを 1 行付け、これらの詳細をそこに保ち、そのファイルを読み戻すと復元します。
  • 他の Mermaid ツールはこのコメントを無視して図だけを描きます。コメントを消したり図を変えたりすると、保たれていた Dr.ERD の詳細を失うか、読み込み時にメタデータ検証のエラーとして案内されます。

2. 例の Mermaid コードを用意する

下のコードがこの実習で読み込む Mermaid テキストです。会員(members)、注文(orders)、注文明細(order_items)の 3 テーブルと 2 つのリレーションが含まれています。コード枠のコピーボタンは、表示されているテキストをクリップボードにそのままコピーするだけです。コピーしただけでは文書は作成されず、開きません。読み込みは次の手順で自分で実行します。

  • ソースは erDiagram で始まります。空行と %% コメントを除いた最初の行がこれ以外だと受け付けません。
  • members ||..o{ orders は左が 1、右が 0 以上を表し、中央の 2 つのドットが非識別リレーションを示します。
  • 長さと小数桁は括弧の中に書きます。例: VARCHAR(100)、NUMERIC(12,2)。
  • PK・FK・UK はカラム名の後に書きます。例: BIGINT member_id FK。
erDiagram
  members {
    BIGINT id PK
    VARCHAR(100) name
  }
  orders {
    BIGINT id PK
    BIGINT member_id FK
    TIMESTAMP created_at
  }
  order_items {
    BIGINT id PK
    BIGINT order_id FK
    VARCHAR(100) product_name
    INTEGER quantity
    NUMERIC(12,2) unit_price
  }
  members ||..o{ orders : "places"
  orders ||..o{ order_items : "contains"

3. 作業フォルダーを準備する

アカウントなしでローカル作業します。Dr.ERD はインストール不要で、デスクトップ版の Chrome または Edge で動作します。作業フォルダーを選ぶと ERD はそのフォルダーの .drerd ファイルとして保存され、既定ではサーバーにアップロードされません。チームでの共同編集には Google ログインが必要で、チーム文書は選択したチームに保存されます。AI チャットは任意機能です。この実習はローカルフォルダーだけで進められます。

  1. 「エディタを開始」を選んでワークスペースを開きます。
  2. 「ワークスペースを選択」で .drerd ファイルを保存するフォルダーを選びます。
  3. ブラウザーがフォルダーへのアクセス許可を求めたら「許可」を選びます。
  • デスクトップ版の Chrome と Edge でフォルダーの選択と保存に対応します。
  • AI チャットを使う場合、自身で API 設定を済ませたうえで送信したメッセージに限り、現在の ERD の文脈が選択した提供元に送られます。

4. Mermaid を読み込む

ファイル一覧の「読み込み」メニューから「Mermaid を読み込む」を選びます。ダイアログで辞書の言語と対象データベースを決めたあと、ファイルか貼り付けテキストを選びます。対象データベースはモデルに保存され、以降の書き出しに使われるため、読み込みの前に必ず選ぶ必要があります。この実習では例と同じ PostgreSQL 18 を選びます。「テキスト」を選ぶと、erDiagram の行が入った貼り付け欄が開きます。

  1. ファイル一覧で「読み込み」を押し、「Mermaid を読み込む」を選びます。
  2. 対象データベースで PostgreSQL 18 を選びます。
  3. 「テキスト」を選び、手順 2 のコードを貼り付け欄に貼ります。
  4. 「確認」を押すと編集画面に一時モデルとして開きます。フォルダーにファイルとして残すには「保存」を押します。
  • ファイルで読み込む場合は「Mermaid を読み込む」で「ファイルを読み込む」を選び、.mmd・.mermaid ファイルを指定します。
  • 読み込んだテーブルはキャンバスに自動で配置されます。
  • 対象データベースを選ばないと読み込みは進みません。
  • エラーは行番号付きで案内されます。その行を直してからもう一度読み込んでください。

5. テーブル・キー・型のサイズを確認する

読み込んだモデルはテーブル 3 つ、リレーション 2 つです。物理名、型、PK・FK の表示が例と一致するか、長さと小数桁も含めて確認します。リレーション線があっても外部キーのカラムが作られるわけではなく、Mermaid の FK 表記は「このカラムが外部キーの候補である」という印にすぎません。どのカラムを参照するかまでは決まりません。読み込んだ直後は、2 つのリレーションとも参照キーと FK 対応が空です。

  1. 各テーブルを「テーブルを編集」で開き、カラムの物理名と型を確認します。
  2. id カラムに PK、member_id と order_id に FK が付いているか確認します。
  3. 対応する型が一致しているか確認します。members.id が BIGINT なら orders.member_id も BIGINT です。
  4. 長さと小数桁を確認します。VARCHAR(100) は長さ 100、INTEGER は長さなし、NUMERIC(12,2) は長さ 12・小数 2 です。
  • 期待する結果: テーブル 3 つ(members、orders、order_items)、リレーション 2 つ。
  • FK 表記だけではリレーションは設定されません。参照キーと FK 対応は手順 7 で自分で設定します。
  • 下の例はメタデータコメントのない純粋な erDiagram なので、標準構文では NOT NULL を表せず、読み込んだカラムは主キー以外すべて「NULL 許可」です。

6. すべてのカラムを必須にする

Mermaid にはカラムが必須であることを示す書き方がないため、読み込んだあとに設定します。この実習は値が必ず必要なカラムで完成させるので、3 テーブルの 10 カラムすべてで「NULL 許可」を切ります。

  1. 「テーブルを編集」でカラムを選びます。
  2. 「カラム詳細」で「NULL 許可」を切ります。
  3. members・orders・order_items の 10 カラムすべてに繰り返します。
  • 「NULL 許可」を切ったカラムは、SQL DDL の書き出しでは NOT NULL になります。Mermaid の図には表示されませんが、Dr.ERD の書き出しに付くメタデータコメントには残ります。
  • Dr.ERD が書き出した Mermaid をそのまま Dr.ERD に読み戻すと、この設定も復元されます。ただしコメントのない純粋な erDiagram や、他のツールがコメントを消したファイルでは主キー以外が再び「NULL 許可」になるため確認してください。
  • この例に自動採番(Identity)はありません。行を登録するときは、親の行を先に作り、id の値を自分で入力します。

7. リレーション 2 つを設定する

読み込んだリレーションは、どの親カラムをどの子カラムが参照するかがまだ決まっていません。各リレーションを開き、参照キー(Source key)と FK 対応を設定します。設定しないままだとリレーションは未設定のまま残り、SQL DDL の書き出しが拒否されます。Mermaid の書き出しはこの状態でも行えますが、正しい外部キーにするには 2 つとも設定する必要があります。

  1. members → orders のリレーションを開き、参照キーで PK を選びます。このリレーションの PK は members.id で、参照キーの一覧にはカラムではなく PK と UK が並びます。
  2. FK 対応で左側の id の行に orders の member_id を選びます。既定の「カラムを追加」のままにすると新しいカラムができるため選びません。識別リレーションは切ったままで「適用」を押します。
  3. orders → order_items のリレーションを開き、参照キーで PK を選びます。このリレーションの PK は orders.id です。
  4. FK 対応で左側の id の行に order_items の order_id を選び、識別リレーションは切ったままで「適用」を押します。
  • どちらのリレーションも非識別(0..N)です。親のキーは子の主キーには入りません。
  • 会員 1 人は注文 0 件以上、注文 1 件は注文明細 0 件以上を持てます。
  • 参照キーがない場合や、外部キーの型が参照カラムと異なる場合はエラーとして案内します。
  • Mermaid の FK 表記は手がかりにすぎません。FK 表記があっても FK 対応を設定していないリレーションは未設定のままです。

8. 保存して Mermaid に書き出す

Ctrl+S または Cmd+S で作業フォルダーの .drerd ファイルに保存し、書き出しメニューで「Mermaid · MMD」を選んで .mmd ファイルとして保存します。書き出したテキストは下の例と同じ形で、テーブル 3 つと非識別リレーション 2 つ(||..o{)がそのまま入ります。保存先は書き出すたびに自分で選びます。

  1. Ctrl+S または Cmd+S で .drerd ファイルに保存します。
  2. 書き出しメニューで「Mermaid · MMD」を選びます。
  3. .mmd ファイルの保存先を選びます。
  4. 書き出したファイルを開き、テーブル 3 つとリレーション 2 つが保たれているか確認します。
  • 配置・辞書・詳細な制約は図の中には現れません。Dr.ERD は書き出し時に %% drerd-metadata-v1 コメントを付けて保ち、読み込み時に復元します。
  • リレーション名にはモデルの名前が使われます。下の例では places と contains です。
  • Mermaid で表せない名前・コメント・リレーション名は .drerd プロジェクトファイルに残り、その旨が案内されます。
erDiagram
  members {
    BIGINT id PK
    VARCHAR(100) name
  }
  orders {
    BIGINT id PK
    BIGINT member_id FK
    TIMESTAMP created_at
  }
  order_items {
    BIGINT id PK
    BIGINT order_id FK
    VARCHAR(100) product_name
    INTEGER quantity
    NUMERIC(12,2) unit_price
  }
  members ||..o{ orders : "places"
  orders ||..o{ order_items : "contains"

9. よくある問題の解決

読み込みから書き出しの間に多く起きる状況と確認方法です。

  • ヘッダーの誤り: 空行と %% コメントを除いた最初の行が正確に erDiagram でなければなりません。それ以外はその行でエラーになります。
  • 未対応の構文: リレーションは members ||..o{ orders のように .. や -- の左右に 2 文字が必要です。一致しない行は「対応していない ERD 構文」として行番号付きで案内します。
  • 型の不一致: 外部キーのカラムは参照するカラムと同じ型にします。members.id が BIGINT なら orders.member_id も BIGINT です。
  • SQL を書き出せない: 未設定のリレーションが残っていると SQL DDL の書き出しが止まり、参照キーと FK 対応の設定を求められます。N:M リレーションは先に中間テーブルにしてください。
  • 必須カラムの不足: 「NULL 許可」が切れていないカラムがあると、この実習の結果と一致しません。

10. 次のステップ

Mermaid のモデルを読み込み、仕上げて保存し、再び Mermaid として書き出す流れを終えました。続けて、エディターで同じモデルを最初から作る方法や、SQL DDL への書き出しを確認してください。

  • Mermaid のテキストはドキュメントやレビューへの貼り付けに適し、.drerd ファイルはエディターでそのまま開けます。
  • SQL DDL の書き出しは、同じモデルを PostgreSQL 18・MySQL 8.4/InnoDB・Oracle 19c に合わせて作成します。

最初の ERD を作成してみましょう

Dr.ERD は初回の準備が終われば、オフラインでも編集とファイル保存に対応します。

エディタを開始

Dr.ERD 불러오는 중… / Loading Dr.ERD…