答案 0 :(得分:1)
一个有趣的替代方案是使用完全独立的模型处理您的读取和写入。 (命令查询分离)。复杂的对象模型(和ORMS)非常适合于复杂的业务行为建模,但是作为查询和向用户显示信息的接口很糟糕。你提到你并不反对放弃使用ORM渲染显示器 - 嗯,这正是许多软件架构师现在提出的建议。编写一个完全不同的界面(具有自己的优化查询),用于读取和报告数据。 “读取”模型可以查询与ORM支持的“写入”模型一起使用的相同数据库,也可以是一个单独的数据库,它针对您需要生成的报告/屏幕进行非规范化和优化。
查看这两个演示文稿。这可能听起来有点矫枉过正(如果你的性能要求非常低,可能就是这样),但这种技术让这么多问题消失的方式令人惊讶。
答案 1 :(得分:0)
一个好的ORM应该为你处理这个问题。如果您认为必须手动执行此操作,则可以执行此操作。
在单个查询中获取所需的所有类别,并将主键ID存储在PHP数组中。
运行与此类似的查询:
mysql_query('SELECT yourListOfFieldsHere FROM Products WHERE Product_id IN ('.implode(',', $categoryIDs).')');
这应该可以为您提供单个查询中所需的所有产品。然后使用PHP将这些映射到正确的类别并相应地显示。