【发布时间】:2013-10-02 01:56:04
【问题描述】:
我想知道是否有一种方法可以使用 OO PHP 完全优化我的 SQL 请求。举个例子,我们有 3 个对象类,命名为 3 个表:
- 产品:ID、名称、价格、颜色...
- 客户:身份证、姓名、姓氏、电子邮件...
- 购物车:id、id_product、id_customer...
所有的 getter 和 setter 都是经典的。 现在,我只想在我的付款页面上显示 Product[name] 和 Customer[surname]。 对应的完全优化的请求是
SELECT product.name, customer.surname FROM cart INNER JOIN product ON product.id = cart.id_product INNER JOIN customer ON customer.id = cart.id_customer
我可以在哪里或如何使用 OOP 生成这个完全优化的请求?并且不必检索整个对象并在以后处理它们?我是否必须为需要优化的每个 sql 请求创建一个方法?也许是一个请求生成器?
【问题讨论】:
-
也许你可以研究一下 ORM,它会为你做这件事,包括各种优化。 Propel 支持急切关系加载(一次检索所有表,而不是单独检索所有表),并且您可以延迟加载列(根据您不经常使用的某些列单独请求它们,对于 BLOB 等很方便)。看看 Doctrine,虽然我不知道那个。
-
@halfer 我想知道我的代码中有什么,ORM 正在从我这里获取这个
标签: php sql oop optimization