我想构建一个允许用户构建自己的表单的应用程序 用户可以将数据输入到其表单中并查询数据。表单可以在创建和使用后进行编辑(添加/删除表单)。表单可以包含小文本框,大文本框,单个列表,复选框或下拉菜单。
我一直在阅读并询问哪种方法更适合构建此类方法 数据库和我没有直接/好的答案。我读到在这种应用程序中,基于列的设计(并将每个字段表示为一列)不是一个好主意,因为用户可以添加许多字段,这不是一个好主意,因为应该有一个限制表中的列数。但是,我事先无法知道用户将添加多少个字段。 (我不确定它们的含义。如果你通过举例说明,它将会有很大的帮助。)
我认为一个好主意可能是根据类型对字段进行分组。 (类型1: 文本框,类型2:下拉列表,类型3:单个列表...等等)。我想设计我的表,以便我可以随时升级我的应用程序并添加新类型,而无需更改我的架构。所以我想要有两个表,一个表来保存关于该字段的元数据:它的类型,名称,它的位置可能在表单中,另一个表用于保存字段的实际值。我似乎无法知道这些表中究竟有什么,以及如何正确设计它们。非常感谢您的帮助。
答案 0 :(得分:0)
**Form** A Form Template
----
formID (PK)
authorID
Name
**FormField** = 1 row for each new question on the form
----------
FormFieldID (PK)
FormID (FK)
FieldID (FK)
SortOrder INT
**FormFieldOptions** - if the form field is a selectbox this will store the options availble to pick from
---------------
FormFieldID (fk)
Name
SortOrder INT
**Field** -- The will be Text Short, Text Long, Checkbox, Radiobutton, Selectbox etc
------
FieldID (PK)
Name
TYPE
这是用于创建表单。为了保存用户对表单的答案/回复,我将为读者留下准备;)