Domain driven design 保存、进度、DDD、实体

Domain driven design 保存、进度、DDD、实体,domain-driven-design,entity,save,progress,Domain Driven Design,Entity,Save,Progress,我是领域驱动设计的新手。我有一个web应用程序,用户可以通过任务保存进度的中间结果,即将表单上的数据另存为草稿,稍后再回来填写。如果表单表示一个实体及其集合的根,则可以根据状态将该实体保存为半成品状态吗?视情况而定,对于这一点,确实没有正确的一般答案 虽然可以走这条路,但它可能会干扰我倾向于遵循的另一个原则,即任何域对象都不能处于无效状态 由于子系统的域是表单的提交,尽管按状态提交可能是合乎逻辑的,也就是说域本身并不排除已填写一半的表单,只有在提交时,所有必填字段都需要填写的规则才真正生效 例如

我是领域驱动设计的新手。我有一个web应用程序,用户可以通过任务保存进度的中间结果,即将表单上的数据另存为草稿,稍后再回来填写。如果表单表示一个实体及其集合的根,则可以根据状态将该实体保存为半成品状态吗?

视情况而定,对于这一点,确实没有正确的一般答案

虽然可以走这条路,但它可能会干扰我倾向于遵循的另一个原则,即任何域对象都不能处于无效状态

由于子系统的域是表单的提交,尽管按状态提交可能是合乎逻辑的,也就是说域本身并不排除已填写一半的表单,只有在提交时,所有必填字段都需要填写的规则才真正生效


例如,填写了一半的表格是有效的,这可能很有意义——特别是如果表格需要经过工作流(如让主管签字)直到可以算作完整的表格,这确实没有正确的一般答案

虽然可以走这条路,但它可能会干扰我倾向于遵循的另一个原则,即任何域对象都不能处于无效状态

由于子系统的域是表单的提交,尽管按状态提交可能是合乎逻辑的,也就是说域本身并不排除已填写一半的表单,只有在提交时,所有必填字段都需要填写的规则才真正生效


例如,填写了一半的表格是有效的,这可能很有意义——特别是如果表格需要经过工作流(例如让主管签字),直到可以算作完整的表格

非常感谢saret。是的,它是基于上下文的。这与我在域对象未处于有效状态时所面临的冲突是一样的,我是否应该允许它在工作流中进行保存。我很高兴-在这种情况下似乎没关系-您确实有两种不同类型的验证-ValidForSave和ValidForSaveValidForSubmission@GeorgeKT也许问题在于,您正在尝试建模使用单个域实体的两个不同概念?我是DDD的新手,也在努力学习,但我觉得如果将Save progression视为一个商业问题,它可能是该领域的一部分。有一个允许不完整的吃水量怎么样。一旦流程完成,征兵单位将变成实体。非常感谢saret。是的,它是基于上下文的。这与我在域对象未处于有效状态时所面临的冲突是一样的,我是否应该允许它在工作流中进行保存。我很高兴-在这种情况下似乎没关系-您确实有两种不同类型的验证-ValidForSave和ValidForSaveValidForSubmission@GeorgeKT也许问题在于,您正在尝试建模使用单个域实体的两个不同概念?我是DDD的新手,也在努力学习,但我觉得如果将Save progression视为一个商业问题,它可能是该领域的一部分。有一个允许不完整的吃水量怎么样。一旦流程完成,绘图实体将变成实体。