这里有一个很大的设计缺陷,但我无法解决它:
业务需求有点涉及,所以我会尽量保持简单。我们有一张购买表和一张退货表。当进行退货时,我们必须在数据库中找到返回最旧购买的匹配项,并将其记录在“已应用退货”表中。
因此,当我在该交易中插入退货时,我需要将退货应用于购买记录。
就目前而言,我们有一个服务调用存储库以进行插入。服务需要知道插入记录的键是什么,以便它可以通过使用该键插入“已应用”记录来完成事务。
我们基本上被卡住了,因为我的理解是存储库不应该返回这种数据。这不是破坏了存储库是一个集合的想法吗?
什么是替代方案?
澄清:
我们有一个 Purchase 表、一个 Return 表和一个 Applied 表
申请的表看起来像这样 purchaseId returnId qtyReturned
因此,当插入退货时,我需要购买的 id(由某些业务规则决定)和新插入的退货的 id。