【发布时间】:2015-04-04 18:16:45
【问题描述】:
我有一个 Product 对象,它还聚合了一些“对象数组”Property、Category、Color、Size 等。 现在我有一个数据库,其中包含针对每个对象的表格...产品、属性、类别、颜色、尺寸等。 现在我检索产品列表的查询有 7-8 个连接,因为我的数据库有一些其他表,其中包含产品及其相关实体的多对多关系。
一切都很好。现在,当我从 PDO 检索数据并需要填充我的产品及其所有聚合对象时,问题就来了。 我需要创建许多嵌套循环来填充我的 Product 对象数组,这是一项相当繁琐的活动,而且似乎也不是一个好的编程习惯(直观地)。
我不想使用任何 ORM,因为我认为 ORM 对于这些连接数量非常低效。
处理这种情况的最佳做法是什么。
非常感谢您的宝贵时间。
编辑:(基于 KIKO Software cmets)
我的大多数产品检索查询的 Where 子句将包含与其聚合实体相关的条件,并且正如我之前所写的,我也有一些多对多关系。所以这意味着即使我进行延迟加载,我也已经在使用数据库资源。那么,在那种情况下,如果我加载结果的一个子集,那么急切加载会是更好的选择吗?如果是这样,我原来的问题还是一样;我不能从太多的嵌套循环中逃脱来加载聚合对象吗?
谢谢
【问题讨论】:
标签: php oop orm data-mapping