建模聚合
Modeling aggregates
我有以下要求:
- 有管理员用户创建的文章
- 每篇文章都有与文章相关的问题
- 管理员可以在每篇文章中提出 1 到 3 个问题
- 每个问题可以有 2 到 5 个答案
- 问题文本和答案文本可以在文章发布前随时修改
- 最后,管理员发布文章,其他用户可以select回答关于文章的每个问题。
好吧,在这种情况下,您可以为文章创建一个聚合,另一个为问题创建一个聚合,另一个为答案创建一个聚合。
如果是,如何保持一篇文章有1到3个问题的不变性?
如果不是,你会如何建模?
非常感谢!
- 文章聚合包含一组对问题的引用(通过聚合根,例如问题 ID)
- 如果该文章已经有 3 个引用,则尝试添加对该问题的引用会失败
由于聚合定义了一致性边界,因此发表文章是一个传奇。如果您希望问题跟踪与它关联的文章(您没有直接说问题保持只与一篇文章关联的不变性),那么添加问题同样会成为一个传奇。
我有以下要求:
- 有管理员用户创建的文章
- 每篇文章都有与文章相关的问题
- 管理员可以在每篇文章中提出 1 到 3 个问题
- 每个问题可以有 2 到 5 个答案
- 问题文本和答案文本可以在文章发布前随时修改
- 最后,管理员发布文章,其他用户可以select回答关于文章的每个问题。
好吧,在这种情况下,您可以为文章创建一个聚合,另一个为问题创建一个聚合,另一个为答案创建一个聚合。
如果是,如何保持一篇文章有1到3个问题的不变性?
如果不是,你会如何建模?
非常感谢!
- 文章聚合包含一组对问题的引用(通过聚合根,例如问题 ID)
- 如果该文章已经有 3 个引用,则尝试添加对该问题的引用会失败
由于聚合定义了一致性边界,因此发表文章是一个传奇。如果您希望问题跟踪与它关联的文章(您没有直接说问题保持只与一篇文章关联的不变性),那么添加问题同样会成为一个传奇。