最近在我们团队中,我们正在讨论创建一个通用的表单创建工具,该工具可以使用所需字段(文本框,下拉列表,单选按钮等)创建动态表单。
用户可以添加他想添加的字段(尽管通常不超过20个),可以与其他可以回答问题的用户共享表单,也可以只是用于输入数据的表单单个用户。
我们正在尝试逐步执行此步骤,并且在第一阶段中,我们将执行以下操作:-
我的初步想法
当用户创建新表单时,所有数据将被保存为NoSQL数据库上的单个JSON对象。
当其他或同一用户尝试访问创建的from来填充值时,将提取同一JSON对象并创建HTML,在第2阶段中,我们可能需要JSON到HTML转换器程序。但是暂时保持简单,我们只需要在客户端从JSON生成HTML。 (网络应用/移动应用)
。一个新的JSON对象将保存在另一个名为Records的表中。
我在某处读到,建议出于报告和分析目的而使用关系数据库,因此我考虑将所有数据保存在另一个关系数据库中,从而复制整个数据库。我对此不太确定,这可能是一个糟糕的设计。
该应用程序可以代替我们的一些应用程序-一些调查应用程序,很少的数据形式,因此没有。的记录可以轻松达到数百万。
我期待有关体系结构/设计和数据库类型的任何建议。
https://www.makeuseof.com/tag/finest-14-google-forms-alternatives-try/
更新1:我同意@SerejaBogolubov的评论,而不是在寻找包含类,接口,它们之间的关系,功能和设计模式的高级/低级设计。 该问题提到了我一开始会使用的几个步骤和构建基块,并且想了解各种建议和想法。
答案 0 :(得分:0)
老实说,我在您的帖子中没有看到任何设计想法。您要保存的位置(以及文本文件的格式或其他格式)是次要的。设计是关于接口,功能签名,应用模式等的。
作为建议,您(显然)必须将表单表示形式与呈现方式分开。因此出现类似FormRepresentation -> Html
的内容。然后的问题是,如何构造FormRepresentation
?我建议使用(单数)二进制操作:FormItem -> FormItem -> FormItem
也称为一种复合OOP模式;在组合物的关联性内,您可能会免费获得平行感,避免性能头痛,并使签名真正简单而有意义。
所以,那只是一个草图。我将为您提供适当的更新信息,以使设计细节(而不是实现细节)变得清晰。