7

环境
Spring/hibernate/MySQL web 应用

问题
我有一个多步骤表格,应该可以在每一步保存以供以后完成。但不完整的步骤可能包含模型所需的字段,因此无法保存模型。

我尝试过或想过尝试的事情

  1. 使字段可以为空。
  2. 使用临时表保存不完整的表格

但是..
解决方案 1 破坏了数据库设计,解决方案 2 会用片段来膨胀我的代码,以便在临时模型和永久模型之间进行转换,如果我在保存表单后添加编辑表单的功能,这将变得很难看。

如何以无缝优雅的方式实现完整的后期功能?

4

3 回答 3

2

另一种选择是boolean在您的数据库表中有一个列complete_edit。对于那些在保存期间未首先输入的列,存储默认值或类似“NOT_COMPLETE”的字符串并将complete_edit列设置为false。只有在提交时,此列才应为 true。

于 2012-12-20T07:01:25.027 回答
2

FWIW,我强烈反对临时表保存不完整的表格。我们在当前的应用程序中有一个类似的设置(以跨不同用户会话的多个步骤准备发票),这会导致可维护性问题以及对临时表和永久表的不连贯修改。

我们正朝着具有鉴别器状态列的单表方法发展,该方法将对这些进行中的发票进行分类,以便在状态翻转之前,后续工作流程步骤不会选择它们。

于 2012-12-20T07:18:56.097 回答
0

我推荐解决方案 2:临时表:因为它清楚地区分了您的域模型(普通表)和一些 GUI 内容,例如持久向导。

如果您不分开,那么您需要在程序中的任何地方检查数据是域模型数据或 gui 数据(在每件事完成后将成为域数据)。

于 2012-12-20T10:51:30.350 回答