我已经阅读 StackOverflow 数周了,但我仍然无法确定我的 DDD Aggregate Root 选择是否正确。长话短说——这里是实体。这是关于足球/足球领域的:
联赛、球队和比赛
每支球队可以通过比赛参加一个或多个联赛(即英超联赛、欧洲冠军联赛)。每支球队在某个联赛中都有主场比赛和客场比赛。每场比赛都有一个联赛、主队和客队。
每个联赛都有很多比赛。
我认为我需要有两个存储库——LeagueRepository,我可以在其中获取特定联赛在特定时期内的所有比赛。通过这个存储库,我将在进行一轮比赛后自动更新数据库,并相应地记录结果。
我还需要一个 TeamRepository,我可以在其中获取不同联赛中某支球队在不同时间段内的所有比赛。这是出于统计目的,即给我过去 10 年在英超联赛中的所有利物浦主场比赛。是的,你猜对了——这是关于投注机会和赔率的计算:)
长话短说——我的领域是足球/足球世界。那些关注这项运动的人都知道这些细节以及联赛、球队和比赛是什么。
是否可以有两个单独的聚合根 - 联赛和团队。我可以通过其中任何一个达到给定的比赛。DDD 设计可以吗?
或者我应该引入一个名为Sport的新实体并使其成为唯一的聚合根。那么一项运动将有许多联赛和许多球队。
我正在使用 EF 代码优先方法,并且正在尝试识别我的存储库和聚合根。如果您正在设计这个数据库,您将如何构建这三个实体——联赛、团队和比赛。当然,我们在这里过度简化了事情。
您的所有想法和意见将不胜感激。
提前致谢。