所以我正在使用Data Mapper设计模式开发应用程序,但是在处理数据库表之间的关系时遇到了一些问题。我不确定,也找不到任何关于如何将我的关系映射到Data Mapper模式的资源。
我应该在我的DbTable类中使用referenceMap和dependentTables定义,还是应该在我需要时使用合成并实例化一个新类?
例如,博客文章及其作者应该是:
$blog->author = findDependentRowset($row)
或
$author = new Author();
$blog->author = $author->findAuthorById($authorId);
答案 0 :(得分:0)
在我看来,正如您所指出的,使用referenceMap
和dependentTables
时,在Zend Framework中实现表关系的“数据映射器相关”方式最多。
根据其他因素(性能需求,数据库模型的复杂性......),您可能希望对设计模式不那么严格,并仅为表实现映射,自己实现与关系相关的查询(通过使用Zend_Select
和某些$this->getAdapter()->select()
提供的JOINs
对象。
希望有所帮助,