Domain driven design DDD |层次结构(相同类型)|约束

Domain driven design DDD |层次结构(相同类型)|约束,domain-driven-design,hierarchical-data,hierarchical-clustering,Domain Driven Design,Hierarchical Data,Hierarchical Clustering,我看了另外两个似乎相关的问题: 但是他们和我的情况不完全一样;可能缺少了“约束”方面 我的情况:我有一个AR名为“研究”,研究可以按集群组织(借鉴调查领域中的集群抽样概念) 假设这个“研究”在is构造函数中接受这个参数“clusteringDepth”(一个整数)。假设:我指定了3个(省、县、市) 这只是一个研究的规范。当您实际执行一项研究时,您将基于该研究创建一个StudyPlan实例 因此,在本例中,我将有一个StudyPlan实例,它有一个省份列表(一级集群)。每个省都有一个县列表

我看了另外两个似乎相关的问题:

但是他们和我的情况不完全一样;可能缺少了“约束”方面

我的情况:我有一个AR名为“研究”,研究可以按集群组织(借鉴调查领域中的集群抽样概念)

假设这个“研究”在is构造函数中接受这个参数“clusteringDepth”(一个整数)。假设:我指定了3个(省、县、市)

这只是一个研究的规范。当您实际执行一项研究时,您将基于该研究创建一个StudyPlan实例

因此,在本例中,我将有一个StudyPlan实例,它有一个省份列表(一级集群)。每个省都有一个县列表(二级集群),每个县都有一个城市列表(三级/最后一级集群)

在每个集群上,您可以附加配额信息和日期范围(指定您必须在该集群中进行多少次面试,以及面试的日期间隔)。显然,父集群必须保持不变量,如“子集群的配额之和必须小于或等于此集群的配额”

好吧,现在,限制条件是:你可以计划与受访者面谈。为此,您需要创建InterviewPlan的一个实例。但是…,此面试计划只能附加到终端(第三级)群集

当然,实现该约束很容易(例如:在集群的addInterviewPlan方法中,我会检查集群是否有父节点)

但是,出于某种原因。。。我认为这不是一个好的DDD设计。这种限制听起来太技术化了;在正常的域对话中,这不是很自然

我的问题:我是否过度解读DDD“语言流动性/自然性要求”?或我错过了一个概念吗?我的意思是,我是否应该发明另一个领域模型,可以是集群的一个子,并有相关的访谈计划

谢谢, 拉卡



其他相关:

我认为这不太技术化。领域专家知道像sum这样的基本数学,在这种情况下,他们甚至创建了tule


技术不变量意味着像表、索引、列、行、ID、函数等技术性的东西。

我不认为这太技术化。领域专家知道像sum这样的基本数学,在这种情况下,他们甚至创建了tule


技术不变量意味着技术上的东西,如表、索引、列、行、ID、函数等。

是你发明了群集还是领域专家告诉你的?是你发明了群集还是领域专家告诉你的?