自定义表单构建器的数据库设计(以及结果存储)

Kus*_*alP 7 mysql sql forms database-design entity-relationship

我正在尝试实现一个自定义表单构建器,类似于WufooGoogle提供的那些.

虽然我创建了一个简单的UI来创建这些自定义表单,但我的问题在于数据库设计.在创建表单时,JSON实现保存在数据库中(希望改进这一点)并引用以构建用户可以看到的表单.

提交后,我想将表单的所有字段存储在数据库中.遵循用于设计数据库的JSON结构,这很容易.但是,我希望每个单独的字段都可以搜索.

问题:

  1. 是否有更好的方式来存储表单设计?
  2. 哪些数据结构/模型适合存储表单的结果?我已经看到EAV可能是一种可能性,但由于涉及的输入类型不同(下拉,复选框,文本,文本区域),这可能会变得乏味.
  3. 哪种结构允许最简单的搜索并允许使用WHERE子句?给出的JSON示例,不允许我这么做

Cad*_*oux 3

EAV 是一个有效的选项 - 对于实际上变成非类型化数据的数据来说,它可能会变得复杂且尴尬。

使用 XPath 的 XML 也是一种选择:http://dev.mysql.com/tech-resources/articles/xml-in-mysql5.1-6.0.html

我认为,如果要搜索的字段可能不同,大多数情况下都需要生成动态 SQL。