gpt4 book ai didi

transactions - 每个事务的多个聚合根实例

转载 作者:行者123 更新时间:2023-12-04 04:05:55 24 4
gpt4 key购买 nike

在 DDD 中,聚合应该代表事务边界。需要涉及多个汇总的交易通常表明模型应该被改进,或者交易要求应该被审查,或者两者兼而有之。

这是否意味着事务边界是每个聚合根实例还是每个聚合?

假设我有一个名为“节点”的聚合根,在每个“节点”中,我都有一个“字段(值对象)”的集合。每个“字段”属于一个类型,并且可以是“节点”类型。就我而言,如果它是“节点”类型,我会将 Id 存储到“节点”聚合根。

Node (AggregateRootID 1)
---> Field1 : String (John)
---> Field2 : String (Doe)
---> Field3 : Node (AggregateRootID 2)

Node (AggregateRootID 2)
--> Field1 : String (Jane)
--> Field2 : String (Doe)

如果我有一个更新两个 AggregateRoots 实例的事务,这是否有效?

或者这是否意味着如果我有“节点”聚合和“元素”聚合,我不能在一个事务中更新它们?

最佳答案

我认为 AR 可能更多地是关于一致性边界而不是事务边界。

交易恰好很好地适应 AR 边界这一事实只是巧合。

由于交易更多地是应用层关注的问题,如果您最终在一个交易中拥有多个 AR,那么它并不一定表明存在设计问题。

事实上,我什至会说,在某些 100% 一致性要求的场景中,您甚至可能别无选择,只能将所有更改包含在一个事务中。

关于transactions - 每个事务的多个聚合根实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23463523/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com