ERDダイアグラム
データベース構造とデータの関連性をモデル化するためのER図(Entity-Relationship Diagram)を作成します。
ERDとは?
ER図は以下を視覚化します:
- エンティティ:データベーステーブルまたはオブジェクト
- 属性:エンティティのプロパティ
- リレーションシップ:エンティティ間の接続方法
- カーディナリティ:リレーションシップの性質(一対一、一対多など)
ERDの作成
エンティティの追加
- ツールバーで テーブル ツールを選び、キャンバスをクリックして各エンティティ用のテーブルを作成します
- 最初の行をエンティティ名として使い、以降の行を属性として使います
行、列、セルのテキストの編集についてはテーブルを参照してください。
各エンティティには通常以下が含まれます:
- エンティティ名(ヘッダー)
- 主キーフィールド
- その他の属性
リレーションシップの追加
- コネクタツール を選択
- 関連するエンティティ間にラインを描画
- カーディナリティに適した矢印を設定
クローフット記法
クローフット記法は最も一般的なERDスタイルです。コネクタの端にシンボルを使用してカーディナリティを表します。
カーディナリティシンボル
| シンボル | 意味 |
|---|---|
| ` | `(単線) |
○(丸) | ゼロ(省略可能) |
< または >(クローフット) | 多 |
一般的なリレーションシップ
| 表記 | 始点 | 終点 | 意味 |
|---|---|---|---|
| 一対一 | ` | ` | ` |
| 一対多 | ` | ` | < |
| 多対多 | < | > | 複数が複数に関連 |
| ゼロまたは一 | `○ | ` | ` |
| ゼロまたは多 | ○< | ` | ` |
クローフット矢印の適用
- エンティティ間のコネクタを選択
- インスペクタの スタイル タブで コネクタ セクションを開く
- 組み込みの矢印 リストから 始点矢印 と 終点矢印 を選択します。ERD用の矢印は次のとおりです:
| 矢印 | 一般的な意味 |
|---|---|
| Bar Bar | 正確に1(‖) |
| Bar Ball | ゼロまたは1(○|) |
| Crows Feet | 多 |
| Crow Bar | 1または多(|<) |
| Crow Ball | ゼロまたは多(○<) |
Crow Bar Segment と Crow Ball Circle は、「1または多」と「ゼロまたは多」の端の別の描画パターンです。
コネクタの端を右クリックして矢印を選ぶこともできます。
ERDワークフローの例
ステップ1:エンティティの特定
ECサイトのデータベースの場合:
- Customer(顧客)
- Order(注文)
- Product(商品)
- OrderItem(注文明細)
ステップ2:属性の定義
Customer
- customer_id (PK)
- name
- phone
Order
- order_id (PK)
- customer_id (FK)
- order_date
- total
ステップ3:エンティティの描画
- 各エンティティに テーブル ツールでテーブルを作成
- エンティティ名をヘッダーとして追加
- 各テーブル内に属性をリスト
- 主キー(PK)と外部キー(FK)をマーク
ステップ4:リレーションシップの追加
- CustomerからOrderへコネクタを描画
- Customer側に「一」の端を設定(|)
- Order側に「多」の端を設定(<)
- これは「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に含める
- バージョン管理:データベースの進化に合わせてイテレーションを保存