7

是否有可能创建表重叠数据库上下文以避免将数据库上下文放入库中或为相同的事物创建不同的表前缀/不同的数据库?

详细地说,这是一个 CRM 系统的例子。

数据库

- Pages
- Categories
- BlogEntries
- Comments
- Products
- Profiles
- Licenses
- Activations
- Invoices
- Customers

数据库上下文

激活服务器上下文使用

- Products
- Licenses
- Activations
- Customers

客户关系上下文使用

- Products
- Customers
- Invoices

前端网站上下文使用

- Products
- Customers
- Invoices
- Profiles
- Pages
- Categories
- BlogEntries
- Comments

解决方案

我能想到的唯一方法......

  • 创建一个具有一个数据库上下文的库来处理所有表(包括迁移等)-> 关注点分离?
  • 使用前缀/数据库拆分将相关表拆分为不同的上下文 -> 相关表条目不会“捆绑在一起”(我必须使用 guid 来避免重复,也在一个项目中使用多个上下文)
4

1 回答 1

1

这是我避免领域驱动设计的主要原因是因为这样的问题。

我只是有一个大的上下文......它是一个存储库包装器,您的存储库就是它。如果您将所有内容存储在一个大数据库中,那么您的上下文/存储库应该是一个大存储库,IMO。

在我看来,这不是关注点分离问题。从某种意义上说,上下文仅包含存储库关注点,而不是围绕这些实体的业务逻辑......它做一件事:序列化和反序列化永久存储中的数据/实体。

大约 4 年前,我们对领域驱动设计进行了实验,我们发现我们反复就“产品属于领域 1 还是领域 2”进行这些相当无意义的辩论。这是对生产力的真正拖累,这实际上是因为 DDD 并不真正适合大多数现实世界的场景,因为重叠是常态而不是例外。

于 2015-04-16T20:06:32.553 回答