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

無料で ERD を作る初心者ガイド — アカウントなしで開始

データベース設計が初めての方向けに、無料の ERD エディタ Dr.ERD でアカウントを作らずに 3 テーブルの ERD をローカルで完成させる手順を順番に説明します。完成したモデルは自分のコンピューターの .drerd ファイルに保存します。

現在の記事: 無料 ERD 作成ガイド

1. ERD・テーブル・カラムとは

ERD(Entity Relationship Diagram)はデータベースの構造を図で表したものです。四角い箱がテーブル、テーブル内の 1 行がカラムです。保存したい対象がテーブルになり、その対象が持つ属性がカラムになります。データ 1 件は各カラムの値を 1 つずつ持つ行として保存されます。

  • テーブル: 同じ種類のデータをまとめた表です。例: 会員、注文、注文明細。
  • カラム: テーブルが保存する属性です。例: name(名前)、created_at(作成日時)。
  • 行: 実際のデータ 1 件です。カラム定義が同じなら行が増えても構造は変わりません。

2. 主キー・外部キー・1:N リレーション

主キー(PK)は各行を識別するカラムで、外部キー(FK)は別のテーブルのキーを参照して 2 つのテーブルを結びます。1 人の会員が複数の注文を作れるとき、会員 1 : 注文 N のリレーションです。子側には注文がない会員もいるため、0 以上(0..N)と表します。この実習の 2 つのリレーションは、親のキーを子の PK に含めない非識別リレーションです。

  • 外部キーのデータ型は参照するカラムと同じにする必要があります。members.id が BIGINT なら orders.member_id も BIGINT です。
  • この実習では id の値を手入力します。自動採番(Identity)は使いません。
  • N:M リレーションの中間テーブルは自動生成されません。必要な場合は自分で中間テーブルを作ります。
  • リレーションを接続するには、親テーブルに先に主キーが必要です。

3. アカウントなしで作業フォルダーを準備

Dr.ERD はインストール不要で Chrome または Edge で動作します。会員登録をせず作業フォルダーを選ぶだけで ERD を作成でき、ローカル作業フォルダーの ERD は既定でサーバーにアップロードしません。チームで共同編集するには Google ログインが必要で、チーム文書は選択したチームに保存されます。AI チャットは任意機能で、自身で設定したうえで送信したメッセージに限り、現在の ERD の文脈が選択した提供元に送られます。

  1. 「エディタを開始」を選んでワークスペースを開きます。
  2. 「ワークスペースを選択」で .drerd ファイルを保存するフォルダーを選びます。
  3. ブラウザーがフォルダーへのアクセス許可を求めたら「許可」を選びます。
  • デスクトップ版の Chrome と Edge でフォルダーの選択と保存に対応します。
  • 同じフォルダーをもう一度開くと、以前のファイルがファイル一覧に表示されます。

4. 新しいモデルを作成し PostgreSQL 18 を選ぶ

ファイル一覧の「新しいモデル」を押して、この実習で使うモデルを作成します。対象データベースは例と同じ PostgreSQL 18 を選びます。「確認」を押すと空のキャンバスが開き、テーブルは自動では作成されません。

  1. ファイル一覧で「新しいモデル」を押します。
  2. ファイル名に first-erd を入力します。
  3. 対象データベースで PostgreSQL 18 を選び、「確認」を押します。
  4. 空のキャンバスが開いたら、上部のツールバーにある「テーブル」ボタンを押します。このボタンが有効な間だけテーブルを配置できます。
  5. キャンバスの空いている場所をクリックし、最初のテーブルを配置します。

5. テーブル 3 つとカラムを作成

手順 4 で最初のテーブルをすでに配置しているため、ここでは残り 2 つを追加して会員、注文、注文明細の 3 テーブルを完成させます。新しいテーブルには共通カラムの created_at と updated_at が自動で入るので、手順 4 で配置したテーブルを含む 3 つすべてで先にこの 2 つのカラムを削除します。その後、「カラムを追加」で行を作って物理名と型を入力し、id カラムで「PK を設定」を押します。orders.created_at は削除したうえで、この手順で「カラムを追加」から型 TIMESTAMP で作り直します。下記の一覧がこの実習で作成するカラムのすべてです。抜けがないか照合してください。

  1. 上部ツールバーの「テーブル」ボタンを押し、キャンバスの空いている場所をクリックしてテーブルを配置します。手順 4 で最初の 1 つを配置済みなので、この方法で残り 2 つを配置して合計 3 つにします。
  2. テーブルを編集状態で開き、カラム行の右側にあるゴミ箱(カラムを削除)ボタンで created_at と updated_at を 3 つのテーブルすべてから削除します。
  3. 「カラムを追加」でカラムを作り、物理名と型を入力します。
  4. 長さや小数桁が必要な型は値を入力します。例: VARCHAR(100)、NUMERIC(12,2)。
  5. orders.created_at はここで「カラムを追加」から作り、型を TIMESTAMP にします。既定の共通カラムはすでに削除したので名前が重複しません。
  6. id カラムで「PK を設定」を押し、主キーにします。
  7. テーブル名を members、orders、order_items にします。
  • members: id BIGINT(PK)、name VARCHAR(100)
  • orders: id BIGINT(PK)、member_id BIGINT(FK)、created_at TIMESTAMP
  • order_items: id BIGINT(PK)、order_id BIGINT(FK)、product_name VARCHAR(100)、quantity INTEGER、unit_price NUMERIC(12,2)
  • 新しいテーブルに自動で入る 2 つの共通カラム(created_at、updated_at)はどちらも削除し、orders.created_at だけを型 TIMESTAMP で追加し直します。そのため 3 テーブルのカラムは下記の 10 個と完全に一致します。
  • 3 テーブルのカラムは合計 10 個です。リレーションを接続した後も 10 個のままにします。
  • 下記の Mermaid は完成したモデルをテキストで表した参考です。物理名と型が上の一覧と一致するか確認してください。
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"

6. リレーションを 2 つ接続

「リレーションツール」の 1:N ボタンを押し、親テーブルと子テーブルを順にクリックするとリレーション設定画面が開きます。「識別リレーション」はオフのままにし、参照キーで PK を選び、「参照キー → FK」で既に作成した外部キーカラムを選びます。

  1. 「リレーションツール」の 1:N ボタンを押してツールを有効にします。
  2. 親テーブル members をクリックし、続けて子テーブル orders をクリックします。最初のクリックが親、2 回目が子です。
  3. 開いた設定画面で「識別リレーション」はオフのままにします。非識別リレーションは FK を自動追加し、対象の PK には含めません。
  4. 参照キーで PK を選びます。members の主キー id が参照キーになります。
  5. 「参照キー → FK」で id 行の選択欄を開き、「+カラムを追加」ではなく既にある member_id を選びます。「+カラムを追加」のままだと id_2 が新しく作られ、カラム数が増えます。
  6. 「適用」を押してリレーションを保存します。
  7. 同じ手順で 1:N ボタンを押し直し、親 orders、子 order_items を順にクリックします。参照キー PK の id を既にある order_id に対応させ、「適用」を押します。
  • どちらのリレーションも 0 以上(0..N)を許可します。注文がない会員も、明細がない注文も作成できます。
  • 外部キーの型が参照カラムと異なる場合はエラーとして案内します。
  • リレーションを 2 つ接続した後も、テーブルは 3 つ、カラムは 10 個です。カラムが増えていたら「参照キー → FK」で「+カラムを追加」を選んでいます。

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

この実習では値が必ず必要なカラムでモデルを完成させます。「カラム詳細」で「NULL 許可」を切ると、そのカラムに空の値を保存できなくなります。

  1. 「テーブルを編集」でカラムを選びます。
  2. 「カラム詳細」で「NULL 許可」を切ります。
  3. 3 テーブルの 10 カラムすべてに繰り返します。
  • 「NULL 許可」がオンのままだと空の値を保存できます。
  • エクスポートした DDL では「NULL 許可」を切ったカラムが NOT NULL として出力されます。

8. 保存して開き直す

Ctrl+S または Cmd+S で作業フォルダーの .drerd ファイルに保存します。ファイル一覧から同じファイルを開き直すと、保存した内容がそのまま表示されます。

  1. Ctrl+S または Cmd+S を押します。
  2. 未保存の表示が消え、保存済みになったことを確認します。
  3. ファイル一覧から first-erd を開き直します。
  4. テーブル 3 つ、リレーション 2 つ、必須カラムの設定が変わっていないか確認します。
  • 完成結果: テーブル 3 つ、非識別 0..N のリレーション 2 つ、主キー 3 つ、外部キー 2 つ。
  • 保存したファイルは、選択した作業フォルダーの .drerd ファイルです。

9. よくある問題の解決

作業中に多い 3 つの状況と確認方法です。

  • フォルダー権限: ブラウザーがアクセス許可を求めたら「許可」を選びます。拒否した場合や接続が切れた場合は、「ワークスペースを選択」または「フォルダーを再接続」で同じフォルダーを選び直します。
  • リレーションが未設定のまま: 関係の参照キーと FK 対応を設定してください。親テーブルに主キーを先に指定してから接続します。
  • 必須カラムのエラー: 必須にしたカラムで「NULL 許可」が切れているか確認します。空の値を許容するカラムでなければ切ったままにします。

10. 次のステップ

完成したモデルを書き出して、実際のデータベースやドキュメントに活用してみましょう。

  • SQL エクスポートで PostgreSQL 18 の DDL を作成し、実際のデータベースに適用できます。
  • Mermaid エクスポートはドキュメントやレビューへの貼り付けに適しています。

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

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

エディタを開始

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