【发布时间】:2015-06-21 16:07:33
【问题描述】:
在 DDD 中,一条准则指出域模型不应该与持久性有关。这意味着不同的域模型可能依赖于相同的表。同时,这个目标似乎很难实现,因为 ORM 在转换模型方面存在技术限制(我想?)。有没有办法使用实际的 ORM 来创建依赖于数据库中相同表的非常具体的域模型,并防止我们在 99.99% 的 DDD 实现中出现的实体和表之间令人失望的 [1:1] 映射?这些技术限制 (?) 是否会使指南过时?
谢谢,
【问题讨论】:
-
“这意味着不同的域模型可能依赖于同一个表”……这个说法不清楚?什么意思?
-
你需要将一个实体映射到多个表还是将多个实体映射到一个表?
-
我需要将多个实体映射到同一个表,但方式不同。在一些表中提取一些数据并将其映射到不同的实体,以创建域(例如:一个用于欺诈检测,一个用于管理功能等......)。如果我不能做到这一点,它就会带来重复数据的问题。我在复制数据方面遇到了真正的问题。我知道它有时是有道理的,也许我会发布一个关于那个的问题......
-
嗯,有时您甚至必须将一个实体映射到两个不同的数据库,例如 redis 和 mysql。不幸的是,实体框架大多数时候不允许我们这样做,所以你不能基于它们。
-
@Rénald 这种方式实际上对于大多数 ORM 都是可行的。是什么让你认为不是?你试过了吗?
标签: domain-driven-design persistence