所以我是 DDD 的新手,我正在尝试正确设计一个应用程序。但是我在识别聚合根时遇到了一些困难。
我的需要或多或少是一棵树
*Customers
*Each customer can have 0 or more licenses
*Each license can have 0 or more courses
*Each course can have 0 or more lessons
*Each lesson can have 0 or more slides and videos
最后,我的测验/测试几乎可以链接到任何东西,甚至是课程视频中的某个时间。
不管我怎么想,我只知道 Customer 将是包含 [Customer, License, Course, Lesson, Slide, Video] 的聚合的聚合根
但这是一个相当大的聚合,我知道应该避免大聚合。
然后,测验将是问题、答案等的集合。作为第二个问题,我可能会问链接应该是什么样子?因为假设我想在 4 分钟后在视频中弹出一个测验。那么我的测验需要链接到该视频并存储时间。但该视频是另一个聚合(在客户、许可证、课程、课程下)的深处,不应以持久的方式直接从该测验聚合中链接。
那我该如何解决。我已经订购了我的大 DDD 书,但暂时不会在这里,如果我能在此之前理解这一点,那就太好了!
我没关系,但我使用 .net c# mvc,带有 ef5 和存储库模式。