我有以下情况:
现在有一种情况——我需要选择所有具有特定书名的发票行。
为此,我可以进行 SQL 连接,但它不会违反域边界吗?另一方面,我可以先从一些 GetBookIdsByNameInterface 获取图书 ID,这似乎是跨域通信的正确方式,但它似乎是开销。
我认为你有两种方法可供选择:
假设您的发票中有 ISBN,您可以使用
book
之类的东西查询 get_isbn_for_title
模型(如果查询是部分匹配,则可以使用多个 isbn,然后查询 invoice
模型。可能无法缩放大容量时效果很好,但避免了在阅读模型中缓存书名的复杂性。
由于发票保留了书名,您当然可以将其缓存在您的发票域读取模型中以使其更快。当订单(重新)最终确定时,只需将标题缓存在读取模型中。它会更好地扩展,但你必须维护书名生命周期(如果标题可以更改)。