Symfony 学说继承映射

Symfony 学说继承映射,symfony,inheritance,doctrine-orm,Symfony,Inheritance,Doctrine Orm,我有车辆类和人员类。我有可以分配给个人或车辆的项目。我研究了继承映射,并将我的赋值表可视化为将使用继承映射的赋值表,但我不确定我是否正确。我希望我的作业表如下所示: ID | item_id | type (vehicle/person) | entityId (the ID of the vehicle or person) ____ |____________|________________________|___________________________________

我有车辆类和人员类。我有可以分配给个人或车辆的项目。我研究了继承映射,并将我的赋值表可视化为将使用继承映射的赋值表,但我不确定我是否正确。我希望我的作业表如下所示:

ID   |   item_id  |  type (vehicle/person) | entityId (the ID of the vehicle or person)
____ |____________|________________________|_____________________________________________
1    |     1      |      person            |       1
2    |     2      |      vehicle           |       1

有人能解释一下要使用的正确映射吗?也许是一个例子吗?

继承映射适用于(例如)您有一个地址,可以是个人地址,也可以是业务地址。您可以拥有一个从继承而来的条令超类
Address
PersonAddress
BusinessAddress
。这不是适合你情况的方法

正确的解决方案是将
manytomy
(许多人有许多项目)从
Person
关联到
Item
,并将
manytomy
(许多车辆有许多项目)从
Vehicle
关联到
Item
。如果您不想将一个和一个项目同时分配给一个人和一辆车,您必须将该逻辑应用到您的控制器中


可以将您的
项目
作为与人或车辆相关联的主要对象,并包括对象类型。这可以而且确实有效,但它确实使您的应用程序大大复杂化。我以这种方式为当前的项目建模,但我有充分的理由走这条路

如果有一个
items
表,然后每个表再增加两个表,不是更有意义吗?例如
人员项目
车辆项目
?我认为对个人/车辆使用继承是没有意义的,除非它们共享许多相同的公共属性或在逻辑上相似