我有车辆和人员课程。我有可以分配给某个人或车辆的物品。我查看了继承映射,我正在将我的赋值表可视化为使用继承映射的那个,但我不确定我是否正确。我希望我的作业表看起来像:
ID | item_id | type (vehicle/person) | entityId (the ID of the vehicle or person)
____ |____________|________________________|_____________________________________________
1 | 1 | person | 1
2 | 2 | vehicle | 1
有人可以解释使用的正确映射吗?也许是一个例子?
答案 0 :(得分:0)
继承映射适用于(例如)地址可能是人员地址与业务地址的情况。您可以拥有Address
和PersonAddress
继承自的学说超类BusinessAddress
。 Doctrine Superclass这不适合您的情况。
正确的解决方案是从ManyToMany
到Person
和Item
(许多车辆有很多项目)从ManyToMany
(很多人都有很多项目)关联Vehicle
到Item
。如果您不想将物品分配给人员和车辆,则必须将该逻辑运行到控制器中。
可以让您的Item
成为与人或车辆相关联的主要对象,并包含对象类型。这可以而且确实有效,但它确实使您的应用程序变得非常复杂。我以这种方式模拟了当前的项目,但我有充分的理由走这条路。