DDD:你如何处理跨域连接?

问题描述 投票:0回答:1

我有以下情况:

  1. 我有一个名为 Books 的域,我们在其中保存书籍、作者、流派等。
  2. 我有另一个名为 Invoice 的域,用户可以在其中从商店订购一本书。发票行包含一本书的 ID。

现在有一种情况——我需要选择所有具有特定书名的发票行。

为此,我可以进行 SQL 连接,但它不会违反域边界吗?另一方面,我可以先从一些 GetBookIdsByNameInterface 获取图书 ID,这似乎是跨域通信的正确方式,但它似乎是开销。

domain-driven-design
1个回答
0
投票

我认为你有两种方法可供选择:

  • 假设您的发票中有 ISBN,您可以使用

    book
    之类的东西查询
    get_isbn_for_title
    模型(如果查询是部分匹配,则可以使用多个 isbn,然后查询
    invoice
    模型。可能无法缩放大容量时效果很好,但避免了在阅读模型中缓存书名的复杂性。

  • 由于发票保留了书名,您当然可以将其缓存在您的发票域读取模型中以使其更快。当订单(重新)最终确定时,只需将标题缓存在读取模型中。它会更好地扩展,但你必须维护书名生命周期(如果标题可以更改)。

© www.soinside.com 2019 - 2024. All rights reserved.