这是一个实际的域驱动设计问题:
从概念上讲,我认为我已经有了聚合根,直到我要定义根为止。
我有一个Employee实体,它已显示为“聚合”根。在企业中,某些员工可以针对他们记录与工作有关的违规行为:
员工----- *违规
既然不是所有员工都受此约束,所以我认为违规行为不会成为员工汇总中的一部分,对吗?
因此,当我想与员工及其相关的违规行为一起工作时,某些服务是否将这两个单独的存储库交互?
最后,当我添加违规时,员工实体上是否有该方法?
谢谢您的帮助!
最佳答案
经过更多的研究之后,我认为我已经回答了我的问题。
保罗·斯托维尔(Paul Stovell)对DDD messageboard上类似问题的回答略有编辑。将“客户”替换为“员工”,将“订单”替换为“违规”,您就会明白。
换句话说,更新客户与更新订单无关。可以想象,订单或违反我的情况可以独立于客户/员工来处理。
如果违规有详细信息行,则违规和违规行将成为同一聚合的一部分,因为更改违规行可能会影响违规。
编辑**
在我的 Realm 中,最令人折服的是,违规行为没有任何表现。它们基本上是事件发生的记录。尚不确定其含义。