entity-relationship diagramは、データベースを設計する際に便利なツールです。 この図は、関係するエンティティ、その属性、およびエンティティ間の関係を示しています。
エンティティ-リレーションシップ・ダイアグラムの作成によく使われる方法に、カラスの足の記法があります。 1970年代に登場したカラスの足の記法で使われている特徴的な矢印は、逆矢印、鶏の足、または単にフォークとも呼ばれています。

カラスの足の記法では、データベースの要素を表現するために、いくつかのユニークな形や記号を使用します。
エンティティ
エンティティとは、カラスの足の記法では、実世界のもの(人、場所、物など、データベースで名前を付けられるものは何でもエンティティになります)で、上のボックスに名前が書かれた四角形で表されます。

属性
エンティティには、それを説明する属性があります。 これらの属性は、長方形の残りの部分の名前の下に表示されます。 エンティティは、1つまたは複数の属性を持つことができます。 それらの属性のうちの1つは、そのエンティティを一意に識別するキー属性、または識別子です。
つまり、プレーヤーのエンティティは、playerという文字が入った長方形で表されます。

関係
図に描かれているエンティティには、それらがどのように相互作用するかを示す関係があります。

カラスの足の記法では、関係はどのように機能するのでしょうか?
カラスの足表記のリレーションシップラインには、リレーションシップのカーディナリティとモダリティを表す2つのインジケータがあります。 カーディナリティとは、あるエンティティのインスタンスが他のエンティティのインスタンスと関連づけられる最大の回数を表します。 モーダリティとは、あるエンティティのインスタンスが他のエンティティのインスタンスと関連づけられる最小の回数を示します。
これらの指標は、関係線の両端に表示され、エンティティがお互いにどのように関係しているかを見ることができます。
One

Many
div

この行から、「カラス」という名前がどこにあるかがわかります。
ゼロまたはマルチ

ゼロまたはマルチの関係は、それがオプションであることを意味しています。
1つまたは複数

“1 “は、複数あるかもしれないが、任意の関係ではないことを示しています。
ひとつだけ

インスタンス間には複数の関係はありえません。
0または1

もう1つの任意の関係で、最大1つとなります。
Chen notation vs. crow’s foot
Crow’s foot notation は、エンティティ-リレーションシップ図を描く唯一の方法ではありません。 代替となる初期のアプローチであるチェン記法は、エンティティとその関係を表現するために異なるアプローチを取ります。エンティティは長方形、その属性は楕円、関係はダイヤモンドです。
チェン記法では、関係とエンティティの間の線に記号を使って、カーディナリティを表します。




陳記法を批判する人の中には、その図がカラスの足よりもスペースを取ることや、関係を表す記号が直感的でないと主張する人もいます。
Example of crow’s foot notation in action
crow’s foot notationがどのように機能するかを示すために、あるオンラインストアをマッピングしてみましょう。 この例では、店舗を単純化して、顧客、注文、商品、割引コードの 4 つのエンティティのみを表現します。

図から、各エンティティにはいくつかの属性があり、一意の識別子にはアスタリスクが付いていることがわかります。
さて、関係のマッピングを始めましょう。
さて、関係のマッピングを始めましょう。

この関係線から、顧客はゼロまたは多数の注文を持つことができ、注文は1つの顧客にのみ関連づけられることがわかります。
製品と注文に目を移すと、製品はゼロまたは複数の注文と関連付けることができますが、注文は1つまたは複数の製品を持っていなければなりません(何かを注文しなければ注文を持つことはできません)。

次は割引コードです。 お客様に商品を注文していただきたいので、季節に応じた割引コードをメールで配信することがあります。
注文時にコードを入力するだけで、注文の合計金額が更新されるので、顧客と割引コードを結びつける必要はありません。
注文と割引コードには、0か1の関係があります。顧客は割引コードを入力しないかもしれませんが、入力しても一度に1つしか使用できません。 逆に言えば、注文には割引コードが付いていないかもしれませんが、付いている場合は1つしか使えません。

カラスの足の記法を使って描かれた実際の実体関係図は、この例よりもはるかに複雑になるでしょう。 しかし、カラスの足の記法を使えば、データベースがどのように機能するのかが一目瞭然であることがお分かりいただけると思います。
カラスの足の記法は、データベースの構築を本格的に開始する必要があるときに最適です。 エンティティがお互いにどのように関係しているかを明確にしなければならない場合、カラスの足記法を使って作成されたエンティティ-リレーションシップ図 (ERD) の関係線によってカプセル化された詳細レベルを評価することができます。 しかし、プロジェクトを始めたばかりの頃は、もっとシンプルな方法でERDを作成することができます。 アイデアを伝えるための最初のステップは、エンティティ、属性、関係を大まかにスケッチすることです。

Gleekはカラスの足の記法をサポートしていますが、それ以外にも様々な図を作成することができます。 当社のダイアグラム ツールは、概念レベルの非公式な ER 図や、製品が外部のエンティティとどのように関連しているかを示すコンテキスト図をすばやく作成したい開発者のためのものです。 会議でアイデアを議論したり、データベース設計の初期段階で共同作業を行う必要がある場合は、Gleek のキーボードフレンドリーなダイアグラムへのアプローチをお試しください
。