ERD ダイアグラム
データベース構造とデータの関連性をモデル化するためのER図(Entity-Relationship Diagram)を作成します。
ERD とは?
ER図は以下を視覚化します:
- エンティティ: データベーステーブルまたはオブジェクト
- 属性: エンティティのプロパティ
- リレーションシップ: エンティティ間の接続方法
- カーディナリティ: リレーションシップの性質(一対一、一対多など)
ERD の作成
エンティティの追加
- シェイプライブラリから テーブル シェイプを使用、または
- データベース記法パックの エンティティ シンボルを使用
各エンティティには通常以下が含まれます:
- エンティティ名(ヘッダー)
- 主キーフィールド
- その他の属性

リレーションシップの追加
- コネクタツール を選択
- 関連するエンティティ間にラインを描画
- カーディナリティに適した矢印を設定
クローフット記法
クローフット記法は最も一般的な ERD スタイルです。コネクタの端にシンボルを使用してカーディナリティを表します。
カーディナリティシンボル
| シンボル | 意味 |
|---|---|
| ` | `(単線) |
○(丸) | ゼロ(省略可能) |
< または >(クローフット) | 多 |
一般的なリレーションシップ
| 表記 | 始点 | 終点 | 意味 |
|---|---|---|---|
| 一対一 | ` | ` | ` |
| 一対多 | ` | ` | < |
| 多対多 | < | > | 複数が複数に関連 |
| ゼロまたは一 | `○ | ` | ` |
| ゼロまたは多 | ○< | ` | ` |
クローフット矢印の適用
- エンティティ間のコネクタを選択
- インスペクタで 矢印 セクションを開く
- クローフット矢印を選択:
- クローフット オープン: ゼロまたは多(○<)
- クローフット クローズド: 1または多(|<)
- クローフット ワン: 正確に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)
- リレーションシップには動詞でラベル付け
ドキュメント
- すべてのエンティティに主キーを含める
- 外部キーを明確に表示
- データ型の追加を検討
- 制約を記載
ヒント
- 紙から始める: Diagrammix3 で作成する前に ERD をスケッチ
- 自動レイアウトを使用: 複雑なダイアグラムの整理に役立つ
- 関連エンティティをグループ化: 論理的なセクションを作成
- ドキュメント用にエクスポート: 技術仕様や Wiki に含める
- バージョン管理: データベースの進化に合わせてイテレーションを保存