在对体育赛事建模的域模型中,应如何处理此场景,特别是在使用无sql文档数据库保存数据的上下文中。
系统中的主要实体是赛季、比赛组、锦标赛、比赛阶段、比赛、球员.
赛季-赛季有一个开始日期,结束日期,一个有序的球员集合和一个锦标赛集合。
锦标赛组-一个锦标赛组包含一个锦标赛集合,每个锦标赛只能属于一个锦标赛组。我不确定这是否真的应该是一个实体。
锦标赛-比赛有一个开始日期,结束日期,一个有序的集合的球员和一个有序的集合的比赛阶段。
比赛阶段-比赛阶段有一个有序的比赛集合。不确定这是否应该是一个实体,因为它只是一种在比赛中分组比赛的方式。
匹配-匹配包含一组播放机。
这让我很困惑,因为到目前为止,我想说的是,总根是赛季,但我不知道球员在哪里适合这个模型,而且我可能也没有正确地处理比赛小组。
统计数据需要生成一个赛季、锦标赛组和球员的统计数据,例如谁在一个赛季中得分最高,谁在一个锦标赛组中得分最高,对于一个他在哪个联赛、赛季或锦标赛组中得分最高的球员。
为了获得这些数据,我会认为玩家实体必须保存对锦标赛和比赛的引用,但是这些引用也是对季节的帮助。这是否可以接受?如果数据在另一个聚合根目录中发生变化,那么更新数据的最佳策略是什么?
发布于 2013-09-30 15:43:31
这不是一个容易回答的问题,因为您所描述的大部分内容都是您领域的词汇表,并给出了行为的提示(但没有对该行为给予重视)。如果要记录模型必须支持的每个场景(据您目前所知),然后通过尝试实现这些场景来创建、挑战和改进该模型,那么您将得到与上面所描述的完全不同的东西。可能有多个模型,每个模型都能解决不同的问题。聚合是面向一组实体和值对象的行为集群,而不是试图将行为转化为名词的实体。
如果我要给你任何建议,分开管理季节,比赛等等.从实际记录实际季节发生的情况,从报告任何类型的统计数据,您可能希望得到期间或结束季节。
https://stackoverflow.com/questions/19091761
复制相似问题