可以将Doctrine DBAL与ORM查询生成器混合使用吗?

rrw*_*rrw 5 php orm symfony doctrine-orm dbal

我正在尝试使用ORM创建一个querybuilder.但我偶然发现了一个与2个可能的表有关系的实体上的字段.有了这种结构,(恕我直言)就不可能将它映射到实体本身.

?????????      ?????????       ?????????
? ValB  ?      ? Main  ?       ? ValC  ?
?????????      ?????????       ?????????
? *? pk ?-- +  ? *? pk ?   +---? *? pk ?
?????????   |  ?????????   |   ?????????
?  ?    ?   +--?  ?v_id?---+   ?  ?    ?
?????????      ?????????       ?????????
?  ?    ?      ?  ?    ?       ?  ?    ?
?????????      ?????????       ?????????
Run Code Online (Sandbox Code Playgroud)

可以将DBAL QueryBuilder与ORM QueryBuilder混合,或者仍然使用ORM QueryBuilder的任何其他方式主要在代码上.

PS.我没有设计数据库,我只是优化它.非常遗憾 :(

Jak*_*zak 5

不,它没有意义,因为后来ORM必须将结果映射到对象.你不能既映射ValB,并ValC在同一财产Main

要正确地做,Main表格ValBValC关系中应该有单独的字段.即使它们具有相同的价值.像这样

?????????      ??????????       ?????????
? ValB  ?      ? Main   ?       ? ValC  ?
?????????      ??????????       ?????????
? *? pk ?-- +  ? *? pk  ?   +---? *? pk ?
?????????   |  ??????????   |   ?????????
?  ?    ?   +--?  ?vB_id?   |   ?  ?    ?
?????????      ??????????   |   ?????????
?  ?    ?      ?  ?vC_id?---+   ?  ?    ?
?????????      ??????????       ?????????
Run Code Online (Sandbox Code Playgroud)

您可以复制v_id列,然后在Doctrine中进行正确的映射.