2010-09-02 83 views
1

可以/应该我的POCO的包含多个数据库(如果适用)?POCO设计问题

我问的原因是我正在重构分阶段构建的旧版企业应用程序。不幸的是,每个阶段都有自己独立的数据库(至少它们都在同一个SQL实例中)。

正因为如此,我可以很容易地看到一个典型的业务对象可我知道,在DDD我没有对象应该知道,如果有类型的,我只是想知道2之间跨越,不成文的规则,多表是好的,但不是多个数据库。

这会不会导致我大量头疼的路线,即,我应该把精力投入到合并4分独立DB的成1,因为它们都适用于相同的应用程序与应用“创可贴”的解决方案?

在我教导我自己时,采取任何我用一粒盐做的陈述域驱动设计当我这样做并试图将它应用于我去。

+1

您可能会发现这一个有趣-http://ayende.com/Blog/archive/2010/08/20/application-databases-and-external-integration-points.aspx – 2010-09-02 16:56:49

回答

1

我们目前的内部系统使用多个数据库。我们的客户数据来自现成的ERP。我们的“购物车”数据来自几个定制数据库,这些数据库被分解为产品和报价。一旦我们与会计/运输接口,我们将连接到另一个数据库以访问订单数据。有时候我们网站的观点会汇总来自所有这些系统的信息,所以我们的POCO可以充分利用来自远方地方的各种垃圾。我们将其留给我们的域服务层来访问各种数据库并填写我们的POCO。

2

您的POCO应该是持久性无知 - 他们不关心他们来自哪里,或他们要去哪里。

您的重点应该放在资源库:它们定义数据来自何处,以及数据如何注入您的POCO。当你决定合并你的数据库时,你只需要更新你的Repository类。

希望有所帮助。

+0

因此,要回答我的直接问题,可以拥有一个POCO,因为他们不知道这一点,所以它可以面向多个数据库。 – 2010-09-02 17:00:55