1

我有一个域模型和一个用 PHP 和 MySql 构建的数据映射器。一些域对象只出现在其他域对象的上下文中,在这些情况下,我使用依赖映射,即依赖对象没有自己的映射器,而是由其所有者的映射器持久化。

出于性能原因,我要连接多个表并发出一个 SQL 查询(而不是每个表一个查询),这就是出现困难的地方:我的查询结果是笛卡尔连接(当然)并且需要相当数量的数组筛选以获取用于填充域对象的合理数据。

例如,我有三个表:一个父 (P1) 和两个子 (C1 和 C2)。如果 P1 中的一条记录在 C1 和 C2 中都有两条记录,那么我的结果集中有四条记录。我可以循环遍历结果集数组以查找唯一值并从中创建一个新数组,但这似乎需要做很多工作。

这注定是一个普遍的问题。解决它的典型方法是什么?我查看了 SPL 数据结构和迭代器,但没有发现任何有用的东西。除非我真的必须这样做,否则我不想拆分为多个查询。

谢谢!

4

0 回答 0