这些是设计通用表单创建工具的正确最初想法吗?例如Google表单,Typeform

时间:2018-07-13 18:16:16

标签: forms database-design architecture bpm

最近在我们团队中,我们正在讨论创建一个通用的表单创建工具,该工具可以使用所需字段(文本框,下拉列表,单选按钮等)创建动态表单。

用户可以添加他想添加的字段(尽管通常不超过20个),可以与其他可以回答问题的用户共享表单,也可以只是用于输入数据的表单单个用户。

我们正在尝试逐步执行此步骤,并且在第一阶段中,我们将执行以下操作:-

  1. 用户可以选择创建新表单。
  2. 几乎没有预定义的字段存在,即名称标签和文本框,地址标签和文本区域,带有某些值的状态下拉列表,带有选项的性别广播和其他示例字段。
  3. 新创建的表单上显示上方的字段只是为了帮助用户了解他可以创建哪种不同的字段。
  4. 用户可以添加/删除字段,字段类型为文本框,文本区域,下拉列表,单选,多选复选框等。
  5. 完成所需的字段后,用户将使用“创建表单”按钮保存表单。整个数据字段类型,其值(如果是下拉列表)将保存在数据库中。
  6. 要访问表单,用户将访问URL,例如form / 5,然后填写并保存。
  7. 我们正在创建动态表单并保存表单输入。

我的初步想法

  1. 当用户创建新表单时,所有数据将被保存为NoSQL数据库上的单个JSON对象。

  2. 当其他或同一用户尝试访问创建的from来填充值时,将提取同一JSON对象并创建HTML,在第2阶段中,我们可能需要JSON到HTML转换器程序。但是暂时保持简单,我们只需要在客户端从JSON生成HTML。 (网络应用/移动应用)

  3. 用户完成输入并保存后,
  4. 。一个新的JSON对象将保存在另一个名为Records的表中。

  5. 我在某处读到,建议出于报告和分析目的而使用关系数据库,因此我考虑将所有数据保存在另一个关系数据库中,从而复制整个数据库。我对此不太确定,这可能是一个糟糕的设计。

该应用程序可以代替我们的一些应用程序-一些调查应用程序,很少的数据形式,因此没有。的记录可以轻松达到数百万。

我期待有关体系结构/设计和数据库类型的任何建议。

https://www.makeuseof.com/tag/finest-14-google-forms-alternatives-try/

更新1:我同意@SerejaBogolubov的评论,而不是在寻找包含类,接口,它们之间的关系,功能和设计模式的高级/低级设计。 该问题提到了我一开始会使用的几个步骤和构建基块,并且想了解各种建议和想法。

1 个答案:

答案 0 :(得分:0)

老实说,我在您的帖子中没有看到任何设计想法。您要保存的位置(以及文本文件的格式或其他格式)是次要的。设计是关于接口,功能签名,应用模式等的。

作为建议,您(显然)必须将表单表示形式与呈现方式分开。因此出现类似FormRepresentation -> Html的内容。然后的问题是,如何构造FormRepresentation?我建议使用(单数)二进制操作:FormItem -> FormItem -> FormItem也称为一种复合OOP模式;在组合物的关联性内,您可能会免费获得平行感,避免性能头痛,并使签名真正简单而有意义。

所以,那只是一个草图。我将为您提供适当的更新信息,以使设计细节(而不是实现细节)变得清晰。