首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >带有mysql数据提交的表单设计器应用程序

带有mysql数据提交的表单设计器应用程序
EN

Stack Overflow用户
提问于 2012-07-09 06:54:33
回答 1查看 224关注 0票数 1

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

  • 用户可以使用具有任意字段的窗体设计器创建多个表单。
  • 每个表单提交都将存储在mysql中。
  • 稍后,用户可以看到相应的表单提交。

我已经完成了UI部分和表单设计器。

问题

我想不出如何设计接受表单提交的数据库,例如,如果用户创建了一个包含以下字段的表单

  • 名字
  • 电子邮件
  • 城市
  • 主题
  • 查询

但是以后用户可以在不影响数据库设计的情况下添加或删除字段。

请帮助我进行MySQL数据库设计,以便将表单存储到表中并提交.

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-07-09 07:14:43

就像这样:

代码语言:javascript
运行
复制
CREATE TABLE forms (
  form_id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT, -- the UID of this form
  owner   INT,                                     -- the user who "owns" the form
  PRIMARY KEY (form_id)
);

CREATE TABLE fields (
  form_id  BIGINT UNSIGNED NOT NULL,
  field    VARCHAR(10),                            -- the field name
  PRIMARY KEY (form_id, field),
  FOREIGN KEY (form_id) REFERENCES forms (form_id)
);

CREATE TABLE submissions (
  submission_id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
  form_id       BIGINT UNSIGNED NOT NULL,
  field         VARCHAR(10),
  value         BLOB,                              -- stores PHP's serialize($var)
  PRIMARY KEY (submission_id),
  FOREIGN KEY (form_id) REFERENCES forms (form_id),
  FOREIGN KEY (form_id, field) REFERENCES fields (form_id, field)
);

我建议修改表单的设计在数据库中创建一个新的(副本)表单,以避免任何基于旧设计的历史提交无效。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11390296

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档