7得票2回答
数据映射器 + 观察者模式

我正在使用PHP构建一个应用程序,并使用数据映射器模式进行数据库访问。我考虑使用观察者模式来使所有的映射器观察它们创建的实体,以便它们可以自动将任何更改保存回数据库,而无需手动解析它们。 我只是想知道这是否是一个好主意,或者是否是不良做法等? 我通常使用几个链接在一起的对象层级,并且目前必...

8得票3回答
具有多个持久层的PHP数据映射器

我正在使用PHP编写一个系统,需要向三个持久层进行写入: 一个Web服务 两个数据库(一个是mysql,一个是mssql) 原因是遗留系统无法更改。 我想使用DataMapper模式,并尝试确定实现我想要的最佳方法。我有以下接口: <?php $service = $...

7得票3回答
Zend框架应用层中的Master/Slave开关

我正在编写一个应用程序,需要在应用程序层面上进行主/从切换。目前,我在创建映射器时实例化了一个Zend_Db_Table对象,然后将setDefaultAdapter设置为从库。 现在,在基本映射器类中,我有以下方法: public function useWriteAdapter() {...

21得票3回答
数据映射器和关系:实现策略?

我已经几乎完成了我的数据映射器,但现在到了涉及关系的环节。 我将在这里尝试阐述我的想法。我找不到有关这个主题的好文章/信息,因此可能正在重新发明轮子(当然,我可以使用一个大框架——但我想通过自己做来学习)。 1:1 关系 首先,让我们看看 1:1 关系。通常情况下,当我们有一个名为“公司...

13得票1回答
如何在生产服务器上使用DataMapper和Sinatra正确设置数据库?

根据DataMapper文档,我认为至少需要调用四个函数才能设置数据库:DataMapper.setup(:default, 'sqlite:///path/to/project.db') DataMapper.finalize DataMapper.auto_migrate! DataMap...

10得票2回答
使用数据映射器模式处理关系

我正在使用数据映射器模式,并且想知道在该模式下处理关系的最佳方法。我花了很多时间在谷歌和Stack Overflow上搜索解决方案,我找到了一些,但我对它们仍不完全满意,特别是在一个我将尝试解释的特殊情况下。 我正在使用PHP,所以我将放置 PHP 代码示例。 假设有一个表"team"(i...

10得票2回答
数据映射器模式:服务层的复杂查询

我是使用Zend Framework中的数据映射器模式。目前为止,这个模式运行良好,但现在我遇到了需要您的帮助/意见的时候。让我们从代码开始: 我们有一张包含多个人员信息的表: CREATE TABLE `persons` ( `id` int(11) NOT NULL AUTO_IN...

11得票3回答
使用数据映射器模式,实体(领域对象)是否应该知道映射器?

我是第一次使用Doctrine2,但我认为这个问题足够通用,不依赖于特定的ORM。 在数据映射器模式中,实体是否应该知道 - 并使用 - 映射器? 我有一些具体的例子,但它们似乎都可以归结为相同的一般问题。 例如,如果我正在处理来自外部源的数据 - 例如一个用户有许多消息 - 而外部源仅...

9得票3回答
错误:无法加载文件--dm-sqlite-adapter。

我将为您翻译以下内容,涉及到IT技术。请注意,我会保留HTML标签,并且尽力使内容更加通俗易懂。请查看以下需要翻译的内容: 我正在开始我的第一个Sinatra应用程序,并尝试使用DataMapper。目前所有工作都处于早期阶段,因为我无法让它真正创建数据库。当我尝试访问我的页面时,会出现“L...

19得票3回答
数据映射器模式

到目前为止,在我所有的c#数据库驱动应用程序中,我一直在使用Active Records。但现在,我的应用需要将持久性代码从业务对象分离出来。我已经阅读了很多关于Martin Fowler的数据映射模式的帖子,但我对这个模式的了解仍然非常有限。 让我们举一个例子: 如果我有两个表 - Cust...