Php 表单设计器应用程序与mysql数据提交

Php 表单设计器应用程序与mysql数据提交,php,mysql,database-design,Php,Mysql,Database Design,我想用PHP开发一个具有以下特性的应用程序 用户可以使用表单设计器创建多个表单,表单设计器包含他们所需的任意多个字段 每个表单提交都将存储在mysql中 用户稍后可以看到相应的表单提交 我已经完成了UI部分和表单设计器 问题 我不知道如何设计用于接受表单提交的数据库,例如,如果用户创建了具有以下字段的表单 名字 电子邮件 城市 主题 质疑 但稍后用户可以添加或删除字段,而不会影响数据库设计 请帮助我进行MySQL数据库设计,以便将表单存储到表中并在表中提交。类似以下内容: 创建表格表单(

我想用PHP开发一个具有以下特性的应用程序

  • 用户可以使用表单设计器创建多个表单,表单设计器包含他们所需的任意多个字段
  • 每个表单提交都将存储在mysql中
  • 用户稍后可以看到相应的表单提交
我已经完成了UI部分和表单设计器

问题

我不知道如何设计用于接受表单提交的数据库,例如,如果用户创建了具有以下字段的表单

  • 名字
  • 电子邮件
  • 城市
  • 主题
  • 质疑
但稍后用户可以添加或删除字段,而不会影响数据库设计

请帮助我进行MySQL数据库设计,以便将表单存储到表中并在表中提交。类似以下内容:

创建表格表单(
form_id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,--此表单的UID
owner INT,-“拥有”窗体的用户
主键(form_id)
);
创建表字段(
form_id BIGINT UNSIGNED NOT NULL,
字段VARCHAR(10),--字段名
主键(表单id,字段),
外键(表单id)引用表单(表单id)
);
创建表格提交(
提交\u id BIGINT无符号非空自动增量,
form_id BIGINT UNSIGNED NOT NULL,
字段VARCHAR(10),
value BLOB,--存储PHP的序列化($var)
主键(提交id),
外键(表单id)引用表单(表单id),
外键(表单id,字段)引用字段(表单id,字段)
);

我建议对表单设计的修改在数据库中创建一个新的(副本)表单,这样就不会使基于旧设计的任何历史提交无效。

另一种情况是采用最适合NoSQL的内容并将其填充到MySQL中。