【えんてぃてぃ】

エンティティ とは?

💡 DBの設計で「管理する対象のモノや概念」、テーブルになる基本単位
📌 このページのポイント
エンティティ:属性と関係(ER図) ユーザー 🔑 ユーザーID 名前 メールアドレス 登録日 注文 1 商品 🔑 商品ID 商品名 価格 カテゴリ エンティティ 管理したい「もの」 リレーション エンティティ間の関係 属性 エンティティの特徴 データベース設計の基本単位。現実世界の「もの」や「概念」を表す
エンティティのイメージ
ひよこ ひよこ

エンティティって何?

ペンギン先生 ペンギン先生

DB設計で「管理対象となるモノや概念」のことだよ。ECサイトなら「顧客」「商品」「注文」「カート」がエンティティ。それぞれがDBのテーブルになる。ER図でエンティティ同士の関係を設計するのがDB設計の基本。

ひよこ ひよこ

ER図って何?

ペンギン先生 ペンギン先生

Entity-Relationship Diagram(実体関連図)の略。エンティティ(テーブル)をボックスで、エンティティ間の関係(1対多多対多など)を線で表した設計図。「顧客は複数の注文を持つ(1対多)」「商品は複数の注文に含まれ、注文は複数の商品を持つ(多対多)」という関係を図で整理する。

ひよこ ひよこ

属性って何?

ペンギン先生 ペンギン先生

エンティティが持つ特性(プロパティ)のこと。「顧客」エンティティの属性は「顧客ID・氏名・メールアドレス・登録日」など。ER図ではエンティティのボックス内に属性を列挙する。これがDBのカラムに対応する。

ひよこ ひよこ

エンティティの設計で失敗するパターンってある?

ペンギン先生 ペンギン先生

よくあるのが「何でも1つのテーブルに入れちゃう」パターン。顧客テーブルに注文情報も住所も全部入れると、同じ住所が何百回も重複したり、データの整合性が壊れたりする。正規化して適切にエンティティを分割するのが基本だよ。

ひよこ ひよこ

DDDのエンティティは違うものなの?

ペンギン先生 ペンギン先生

いい質問だね。ドメイン駆動設計のエンティティは「一意のIDで識別されるオブジェクト」のこと。DB設計のエンティティと似ているけど、DDDでは「値オブジェクト」との区別が重要で、住所のように同じ値なら同じとみなすものは値オブジェクト、ユーザーのようにIDで区別するものがエンティティになる。設計の文脈で意味が微妙に変わるから注意が必要だよ。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
エンティティって出てきたら「DB設計で管理対象とするモノや概念の単位、テーブルに対応する」と思えばOK!
📖 おまけ:英語の意味
「Entity」 = 実体・存在するもの
💬 データベース理論でPeter Chen(1976年)がER(Entity-Relationship)モデルを提唱し「実体(entity)」として定義した概念
← 用語集にもどる