繁体   English   中英

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

[英]Can Doctrine DBAL be mixed with ORM Query Builder?

我正在尝试使用ORM创建一个querybuilder。 但是我偶然发现了实体上与2个可能的表有关联的字段。 使用这种结构,将无法(IMHO)将其映射到实体本身。

╔═══════╗      ╔═══════╗       ╔═══════╗
║ ValB  ║      ║ Main  ║       ║ ValC  ║
╠══╦════╣      ╠══╦════╣       ╠══╦════╣
║ *║ pk ║-- +  ║ *║ pk ║   +---║ *║ pk ║
╠══╬════╣   |  ╠══╬════╣   |   ╠══╬════╣
║  ║    ║   +--║  ║v_id║---+   ║  ║    ║
╠══╬════╣      ╠══╬════╣       ╠══╬════╣
║  ║    ║      ║  ║    ║       ║  ║    ║
╚══╩════╝      ╚══╩════╝       ╚══╩════╝

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

PS。 我没有设计数据库,而只是对其进行了优化。 非常遗憾 :(

不,这没有任何意义,因为以后的ORM必须将结果映射到对象。 你不能同时映射ValBValC在同一财产Main

为了正确地做到这一点,在Main表中应该有用于ValBValC关系的单独字段。 即使它们具有相同的值。 像这样

╔═══════╗      ╔════════╗       ╔═══════╗
║ ValB  ║      ║ Main   ║       ║ ValC  ║
╠══╦════╣      ╠══╦═════╣       ╠══╦════╣
║ *║ pk ║-- +  ║ *║ pk  ║   +---║ *║ pk ║
╠══╬════╣   |  ╠══╬═════╣   |   ╠══╬════╣
║  ║    ║   +--║  ║vB_id║   |   ║  ║    ║
╠══╬════╣      ╠══╬═════╣   |   ╠══╬════╣
║  ║    ║      ║  ║vC_id║---+   ║  ║    ║
╚══╩════╝      ╚══╩═════╝       ╚══╩════╝

您可以复制v_id列,然后在Doctrine中进行适当的映射。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM