ERD ダイアグラム

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

ERD とは?

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

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

ERD の作成

エンティティの追加

  1. シェイプライブラリから テーブル シェイプを使用、または
  2. データベース記法パックの エンティティ シンボルを使用

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

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

ERD エンティティ

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

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

クローフット記法

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

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

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

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

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

クローフット矢印の適用

  1. エンティティ間のコネクタを選択
  2. インスペクタで 矢印 セクションを開く
  3. クローフット矢印を選択:
    • クローフット オープン: ゼロまたは多(○<)
    • クローフット クローズド: 1または多(|<)
    • クローフット ワン: 正確に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

ERD のベストプラクティス

レイアウト

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

命名

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

ドキュメント

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

ヒント

  • 紙から始める: Diagrammix3 で作成する前に ERD をスケッチ
  • 自動レイアウトを使用: 複雑なダイアグラムの整理に役立つ
  • 関連エンティティをグループ化: 論理的なセクションを作成
  • ドキュメント用にエクスポート: 技術仕様や Wiki に含める
  • バージョン管理: データベースの進化に合わせてイテレーションを保存