根据我的理解,来自DDD的有界上下文的一个特征是,它们是无处不在的语言没有含糊不清的边界。在这种情况下,如果在系统上我们有产品的概念,那么如果我们谈论从经销商处购买产品或者真正将产品销售给某人,产品的含义可能会有所不同。事实上,商业逻辑甚至可能会发生变化:在销售时,可能会有一些关于折扣的逻辑,这些折扣在购买产品时没有意义。在这种情况下,我们孤立无处不在的语言,创造出两个有界的背景。在其中,有产品的概念,但它们意味着不同的东西。
重点是通常有许多重复数据。例如,在产品示例中,产品的名称,类别,描述是相同的事物的示例。我在这里的疑问不是将这些重复的信息与代码相关联,而是在持久化数据时。
在将数据持久保存到数据存储时,我们如何处理这些重复数据?是否有一种推荐的方式来关联它,或者我们只是将它保持分离,而不管它带来的冗余?
答案 0 :(得分:2)
有界上下文不应该共享同一个数据存储。如果您有多个有界上下文,每个上下文都有一个Id
实体,那么这些有界上下文中的每一个很可能都有一个用于存储Product
的表/集合。
答案 1 :(得分:2)
您可以使用RPC作为集成有界上下文的方法,但这应该在使用中受到限制。但是,有时您需要当前数据(价格),因此这是一种可接受的做法。