Doctrine DBAL 可以与 ORM Query Builder 混合使用吗?

Can Doctrine DBAL be mixed with ORM Query Builder?

我正在尝试使用 ORM 创建查询生成器。但是我偶然发现了一个与 2 个可能的表有关系的实体的字段。使用此结构,(恕我直言)不可能将其映射到实体本身。

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

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

PS。我没有设计数据库,我只是优化它。对此感到抱歉:(

不,这没有意义,因为以后的 ORM 必须将结果映射到对象。您不能将 ValBValC 都映射到 Main

中的同一个 属性

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

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

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