在为体育赛事建模的域模型中,应该如何处理这种情况,尤其是在使用无 sql 文档数据库来保存数据的情况下。
系统中的主要实体是赛季、锦标赛组、锦标赛、锦标赛阶段、比赛、球员。
赛季 - 一个赛季有一个开始日期、结束日期、一个有序的球员集合和一个锦标赛集合。
锦标赛组 - 锦标赛组包含一组锦标赛,每个锦标赛只能属于一个锦标赛组。我不确定这是否真的应该是一个实体。
Tournament - Tournament 有一个开始日期、结束日期、一个有序的 Player 集合和一个有序的 Tournament-Stage 集合。
Tournament-Stage - Tournament-Stage 有一个有序的 Match 集合。不确定这是否应该是一个实体,因为它只是在锦标赛中分组匹配的一种方式。
匹配 - 匹配包含玩家的集合。
这就是让我感到困惑的地方,因为到目前为止我会说总根是赛季,但是我不知道玩家适合这个模型的位置,而且我可能也没有正确处理锦标赛组.
需要为赛季、锦标赛组和球员生成统计数据,例如,谁在赛季中得分最高,谁在锦标赛组中得分最高,以及他在哪个锦标赛、赛季或锦标赛组中得分最高的球员。
要获得这些数据,我会认为 Player 实体必须保存对 Tournament 和 Match 的引用,但这些引用对 Season 也有帮助。这是可以接受的吗?如果一个聚合根中的数据发生变化,更新另一个聚合根中的数据的最佳策略是什么?