discriminator_typeカラムは何のために存在する?

Symfony, Doctrineでdiscriminator_typeというカラムは何のために存在するのでしょうか?

エンティティを継承してサブクラスのエンティティを作る時に利用することができます。

データベース内の同じのテーブルに異なるエンティティタイプを保存する際に使用されます。

discriminator_typeカラムを作らない方法は?

つまり継承を行わない場合は特にdiscriminator_typeカラムを作る必要性はありません。クエリ の低速化を招く原因にもなるので、なくしてしまってもよいでしょう。

エンティティを作る際に、下記のアノテーションをなくすことでdiscriminator_typeカラムを作らないことが可能です。

@ORM\InheritanceType(“SINGLE_TABLE”)
@ORM\DiscriminatorColumn(name=”discriminator_type”, type=”string”, length=255)

日本発!ECオープンプラットフォーム「EC-CUBE」 EC-CUBEゴールドパートナー EC-CUBEは株式会社イーシーキューブの商標です

EC-CUBEに関するお問い合わせ


    [重要]現在公式にセキュリティサポートが切れていないPHPは8.1以上、MySQLは8.0以上で、対応しているEC-CUBEバージョンは4.2以上です。古いEC-CUBEを使っている方は適切なタイミングでバージョンアップをご検討ください。

    EC-CUBEバージョンアップ