我正在努力理解如何为我的问题建模:
- 一个公司可以有多个团队。
- 每个团队必须有每个公司的唯一名称。
- 特定团队的报告以及公司所有报告的列表必须是可检索的。
刚才,我有 3 个限界上下文 - 公司、团队和报告。我相信我应该将 Team 移入 Company 以强制执行我的唯一名称不变 - 但是,据我了解:
“聚合边界之外的任何东西都不能包含对内部任何东西的引用,除了根实体”。
如果我只能从我的报告 AR 中引用一个 AR,我就无法存储我的报告属于哪个团队 - 只是公司。
我认为团队可能作为它自己的 BC 存在,也可能存在于公司 BC 中。团队的创建只能在 BC 公司内部作为一个实体进行。在这里,可以确保该团队名称的命名和不变实施。然后,团队 BC 将仍然存在,并且报告仍然可以保留对来自报告 AR 的 TeamId 的引用。但是,这将导致 TeamId 和 TeamName 重复 - 在 Company BC 和 Team BC 内。
这种方法听起来不错,还是我错过了什么?
如果我有 3 个 BC 应该是 2 个 BC,或者在公司 BC 中缺少团队实体概念,我会感到困惑。
也许我混淆了我只有/需要聚合根的有界上下文 - 我不确定!
咕噜,救命!