我有一个产品对象也聚集了几个“对象数组” 属性,类别,颜色,大小等现在 我有一个包含对每个对象数据库的表... 产品,属性,类别,颜色,尺寸等 现在我的查询检索产品列表有7-8个连接,因为我的数据库有一些其他表包含产品的多对多关系其相关实体。PHP - 填充聚合对象 - 最佳实践
一切都很好。现在问题出现在我从PDO检索数据时需要填充我的产品 - 以及它的所有聚合对象。 我需要做很多嵌套循环来填充我的产品对象数组,这是一个非常繁琐的活动,也似乎不是一个很好的编程实践(直观)。
我不想使用任何ORM,因为在我看来,ORM对于这些连接数量效率非常低。
什么是处理这种情况的最佳实践。
非常感谢您的时间。
编辑:(基于KIKO软件评论)
凡我大部分的产品检索查询的条款,将包含条件,关系到其聚集的实体,和我之前写的,我有一些多对多关系也是如此。所以这意味着我已经在使用数据库资源“甚至”,如果我去懒加载。那么,在这种情况下,如果加载我的结果的子集,急切加载会是更好的选择?如果是这样,我的原始问题再次保持不变;我能否逃避太多的嵌套循环来加载聚合对象?
感谢
谢谢你的解决方案,我可以看看它是否适合根据需要。如果我需要急切加载,是否还有其他解决方法? 其次,检索过程的原因通常会减慢:从数据库检索数据或循环访问每个记录以填充对象? (如果数据库表的大小不是太大) – developer 2015-04-04 18:54:42
你的第一个问题应该在答案中得到回答,而不是在评论中回答。至于你的第二个问题:数据库访问的速度远远低于将检索到的数据存储在php对象中的任何事情。所以每当你不需要访问数据库时,你都不应该这样做。数据库访问可以通过很多因素加速,例如:服务器的位置,服务器的速度,索引,正确的数据标准化等等。只是使用连接并不能真正帮到那么多。但是,每当有疑问衡量它! – 2015-04-04 19:20:59
我已根据您的意见编辑了我原来的问题。谢谢你给我一个方向。 – developer 2015-04-04 19:52:07