【发布时间】:2018-12-28 15:29:18
【问题描述】:
我有 2 个聚合,它们具有一对多的关系。例如,我有一个问题列表,我想将其中一些添加到问卷中,其中一些是强制性的,必须添加到所有问卷中,有些则不是,由问卷的创建者选择。
假设我正在使用事件溯源和 CQRS。我创建了问题列表,并且我想将强制性问题添加到问卷中。 通常我会这样做
questionaire.AssignQuestions(questions.Where(q => q.isMandatory).Select(q => q.Id))
类似的东西。但在 CQRS 中,我不应该为此使用查询模型。但是在命令模型中我使用的是事件存储,所以我必须重播所有问题的所有事件,这似乎不合理。
很可能我的模型不够面向事件,但在这一点上我真的没有更好的主意。我应该如何建模?
谢谢
【问题讨论】:
-
添加强制性问题是在问卷生命周期中的某个时间点发生的用户操作或规则吗?如果是这样,它发生在哪个状态转换期间?
标签: domain-driven-design cqrs event-sourcing event-driven-design