ERDのクロウズフット記法を理解する
ER図のクロウズフット記法の完全ガイド。1対1、1対多、多対多リレーションシップのシンボルを学びます。
詳細な説明
クロウズフット記法とは?
クロウズフット記法(IE記法またはInformation Engineering記法とも呼ばれる)は、ER図でリレーションシップのカーディナリティを表現するために最も広く使用されている方法です。3つの異なる線の端で、関連レコードの最小数と最大数を伝えます。
3つのシンボル
| シンボル | 名前 | 意味 |
|---|---|---|
── |
単線 | 正確に1(必須) |
──○ |
円+線 | 0または1(任意) |
──< |
クロウズフット | 多数 |
リレーションシップの種類
1対1(1:1)
┌──────────┐ ┌──────────┐
│ users │──────── │ profiles │
└──────────┘ 1 1 └──────────┘
各ユーザーは正確に1つのプロフィールを持ち、各プロフィールは正確に1人のユーザーに属します。profilesテーブルにUNIQUE外部キーを配置して実装します。
1対多(1:N)
┌──────────┐ ┌──────────┐
│ users │────────<│ posts │
└──────────┘ 1 N └──────────┘
各ユーザーは多くの投稿を持てますが、各投稿は正確に1人のユーザーに属します。posts側のクロウズフットが「多」を示します。postsテーブルに外部キー(user_id)を配置して実装します。
多対多(M:N)
┌──────────┐ ┌──────────┐
│ students │>────────<│ courses │
└──────────┘ M N └──────────┘
各学生は多くのコースに登録でき、各コースは多くの学生を持てます。両側にクロウズフットが表示されます。両方のテーブルへの外部キーを持つ結合テーブル(enrollments)を使用して実装します。
クロウズフット図の読み方
記法を一方のエンティティからもう一方に向かって読みます。usersエンティティに立ってpostsに向かって見ると:posts端のクロウズフットが「ユーザーは多くの投稿を持てる」と教えてくれます。postsに立ってusersに向かって見ると:単線が「投稿は1人のユーザーに属する」と教えてくれます。
このツールでのクロウズフットの使用
ERDエディタは、適切なクロウズフットマーカー付きでエンティティ間にリレーションラインを描画します。「1対多」リレーションシップを作成すると、「1」側には単線マーカー、「多」側には三又のクロウズフットが表示されます。追加の明確さのため、リレーションタイプのラベルがライン上に表示されます。
ユースケース
データベース設計を学んでいる場合や他の人に教えている場合。クロウズフット記法の理解は、MySQL Workbench、pgModeler、Lucidchartなどのデータベース設計ツール、ホワイトボードセッション、技術ドキュメントでER図を読み書きするために不可欠です。