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 必须将结果映射到对象。您不能将 ValB
和 ValC
都映射到 Main
中的同一个 属性
为了正确地做到这一点,Main
table 中应该有单独的字段用于 ValB
和 ValC
关系。即使它们具有相同的值。像这样
╔═══════╗ ╔════════╗ ╔═══════╗
║ ValB ║ ║ Main ║ ║ ValC ║
╠══╦════╣ ╠══╦═════╣ ╠══╦════╣
║ *║ pk ║-- + ║ *║ pk ║ +---║ *║ pk ║
╠══╬════╣ | ╠══╬═════╣ | ╠══╬════╣
║ ║ ║ +--║ ║vB_id║ | ║ ║ ║
╠══╬════╣ ╠══╬═════╣ | ╠══╬════╣
║ ║ ║ ║ ║vC_id║---+ ║ ║ ║
╚══╩════╝ ╚══╩═════╝ ╚══╩════╝
您可以复制 v_id
列,然后在 Doctrine 中进行适当的映射。
我正在尝试使用 ORM 创建查询生成器。但是我偶然发现了一个与 2 个可能的表有关系的实体的字段。使用此结构,(恕我直言)不可能将其映射到实体本身。
╔═══════╗ ╔═══════╗ ╔═══════╗
║ ValB ║ ║ Main ║ ║ ValC ║
╠══╦════╣ ╠══╦════╣ ╠══╦════╣
║ *║ pk ║-- + ║ *║ pk ║ +---║ *║ pk ║
╠══╬════╣ | ╠══╬════╣ | ╠══╬════╣
║ ║ ║ +--║ ║v_id║---+ ║ ║ ║
╠══╬════╣ ╠══╬════╣ ╠══╬════╣
║ ║ ║ ║ ║ ║ ║ ║ ║
╚══╩════╝ ╚══╩════╝ ╚══╩════╝
是否可以将 DBAL QueryBuilder 与 ORM QueryBuilder 混合使用,或者仍将主要在代码中使用 ORM QueryBuilder 的任何其他方式。
PS。我没有设计数据库,我只是优化它。对此感到抱歉:(
不,这没有意义,因为以后的 ORM 必须将结果映射到对象。您不能将 ValB
和 ValC
都映射到 Main
为了正确地做到这一点,Main
table 中应该有单独的字段用于 ValB
和 ValC
关系。即使它们具有相同的值。像这样
╔═══════╗ ╔════════╗ ╔═══════╗
║ ValB ║ ║ Main ║ ║ ValC ║
╠══╦════╣ ╠══╦═════╣ ╠══╦════╣
║ *║ pk ║-- + ║ *║ pk ║ +---║ *║ pk ║
╠══╬════╣ | ╠══╬═════╣ | ╠══╬════╣
║ ║ ║ +--║ ║vB_id║ | ║ ║ ║
╠══╬════╣ ╠══╬═════╣ | ╠══╬════╣
║ ║ ║ ║ ║vC_id║---+ ║ ║ ║
╚══╩════╝ ╚══╩═════╝ ╚══╩════╝
您可以复制 v_id
列,然后在 Doctrine 中进行适当的映射。