![]() |
1
2
但是,有几种不同的方法可以实现这一点,您选择哪一种方法取决于您的环境。 1)断开对象与数据库之间的连接 编写与数据库表没有连接的对象。首先使数据库表正常化,然后查看应用程序的用户将如何与数据交互。将数据建模到对象,但不要将每个对象绑定到表(即使用Zend_-DB_-Table_抽象类) 一旦建立了对象,那么就编写映射器类,将对象映射回数据库中的相关表。这些是扩展zend_db_表的类(如果适用)。 您可以用两种方式处理连接,要么通过zend_db_table relationship功能映射连接,要么(imho更好的选择)只需使用zend_db_select在映射器类中生成相关方法。 所以你有两个班(可能是每桌一个,但不总是) 人 人物映射器 在代码中,如果要处理某些对象,请创建一个新对象
然后写入并将其传递给映射器以保存它:
或者,换一种方式:
下一步将是基于 SPL :
其中$personmapper->loadallmen()是一种类似以下的方法:
2)MySQL视图 如果您有许多联接表,其中每个联接有一行,那么,您将基于订单表中的ID联接客户信息,并以只读方式(因此,您不希望通过Zend-DB-U表适配器更新任何信息),您将创建规范化的表,然后在顶部创建一个视图。该视图处理后台的连接,因此通过Zend,您会感觉到连接到一个表。 有一些警告,MySQL视图确实存在一些性能问题(这就是为什么它在单行FK连接上最好的原因),而且它们是严格只读的。 |
![]() |
Karlo · PHP Sqlite PDO最新版本 3 月前 |
![]() |
Malte · 检查远程服务器上是否存在文件(使用PHP)[关闭] 3 月前 |
![]() |
Bard.Mus · 迁移后的数据库字符集环境 4 月前 |