ERDダイアグラム

データベース構造とデータの関連性をモデル化するためのER図(Entity-Relationship Diagram)を作成します。

ERDとは?

ER図は以下を視覚化します:

  • エンティティ:データベーステーブルまたはオブジェクト
  • 属性:エンティティのプロパティ
  • リレーションシップ:エンティティ間の接続方法
  • カーディナリティ:リレーションシップの性質(一対一、一対多など)

ERDの作成

エンティティの追加

  1. ツールバーで テーブル ツールを選び、キャンバスをクリックして各エンティティ用のテーブルを作成します
  2. 最初の行をエンティティ名として使い、以降の行を属性として使います

行、列、セルのテキストの編集についてはテーブルを参照してください。

各エンティティには通常以下が含まれます:

  • エンティティ名(ヘッダー)
  • 主キーフィールド
  • その他の属性

リレーションシップの追加

  1. コネクタツール を選択
  2. 関連するエンティティ間にラインを描画
  3. カーディナリティに適した矢印を設定

クローフット記法

クローフット記法は最も一般的なERDスタイルです。コネクタの端にシンボルを使用してカーディナリティを表します。

カーディナリティシンボル

シンボル意味
``(単線)
○(丸)ゼロ(省略可能)
< または >(クローフット)多

一般的なリレーションシップ

表記始点終点意味
一対一```
一対多``<
多対多<>複数が複数に関連
ゼロまたは一`○``
ゼロまたは多○<``

クローフット矢印の適用

  1. エンティティ間のコネクタを選択
  2. インスペクタの スタイル タブで コネクタ セクションを開く
  3. 組み込みの矢印 リストから 始点矢印 と 終点矢印 を選択します。ERD用の矢印は次のとおりです:
矢印一般的な意味
Bar Bar正確に1(‖)
Bar Ballゼロまたは1(○|)
Crows Feet多
Crow Bar1または多(|<)
Crow Ballゼロまたは多(○<)

Crow Bar Segment と Crow Ball Circle は、「1または多」と「ゼロまたは多」の端の別の描画パターンです。

コネクタの端を右クリックして矢印を選ぶこともできます。

ERDワークフローの例

ステップ1:エンティティの特定

ECサイトのデータベースの場合:

  • Customer(顧客)
  • Order(注文)
  • Product(商品)
  • OrderItem(注文明細)

ステップ2:属性の定義

Customer

  • customer_id (PK)
  • name
  • email
  • phone

Order

  • order_id (PK)
  • customer_id (FK)
  • order_date
  • total

ステップ3:エンティティの描画

  1. 各エンティティに テーブル ツールでテーブルを作成
  2. エンティティ名をヘッダーとして追加
  3. 各テーブル内に属性をリスト
  4. 主キー(PK)と外部キー(FK)をマーク

ステップ4:リレーションシップの追加

  1. CustomerからOrderへコネクタを描画
  2. Customer側に「一」の端を設定(|)
  3. Order側に「多」の端を設定(<)
  4. これは「1人の顧客が多くの注文を持つ」ことを表します

ステップ5:リレーションシップのラベル付け

コネクタにテキストラベルを追加:

  • "places"(Customer → Order)
  • "contains"(Order → OrderItem)
  • "is product in"(Product → OrderItem)

ERDのベストプラクティス

レイアウト

  • 関連するエンティティは近くに配置
  • エンティティのサイズを統一
  • グリッドパターンでエンティティを整列
  • コネクタの交差を最小化

命名

  • エンティティには単数形の名詞を使用(Customersではなく Customer)
  • 一貫した命名規則を使用(camelCase、snake_case)
  • リレーションシップには動詞でラベル付け

ドキュメント

  • すべてのエンティティに主キーを含める
  • 外部キーを明確に表示
  • データ型の追加を検討
  • 制約を記載

ヒント

  • テキストから始める:編集 → Mermaidを挿入(PRO)でMermaidの erDiagram を貼り付けて下書きを作成し、そこから調整する — Mermaidサポートを参照
  • 自動レイアウトを使用:複雑なダイアグラムの整理に役立つ
  • 関連エンティティをグループ化:論理的なセクションを作成
  • ドキュメント用に書き出す:技術仕様やWikiに含める
  • バージョン管理:データベースの進化に合わせてイテレーションを保存