ERDのクロウズフット記法を理解する

ER図のクロウズフット記法の完全ガイド。1対1、1対多、多対多リレーションシップのシンボルを学びます。

ERD Basics

詳細な説明

クロウズフット記法とは?

クロウズフット記法(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図を読み書きするために不可欠です。

試してみる — ERD Editor

フルツールを開く