mysql - 如何为表单生成器及其记录创建数据库表?

标签 mysql database database-design relational-database

我正在开发一个表单生成器,但是,在尝试为其创建数据库时我感到很困惑。

需求分为后端/前端,

对于后端,管理员可以管理表单

  • 具体表单名称
  • 管理表单输入(仅允许输入框、选择框、复选框)
    • 输入标题
    • 需要吗?
    • 如果选择框:
      • 选项名称、值
      • *当我选择值时是否会弹出其他输入?
    • 如果输入框:
      • 是数字/字符串类型吗?

前端:可以存储表单值

问题是:

1) 对于*,例如,如果用户选择选项A,则选项C是可见的,否则,它是隐藏的,如何存储关系?

2) 如何以这种形式存储值?如果我放入一张表/值可能是varchar/float/integer/tinyint

感谢您的帮助enter image description here

最佳答案

针对问题 #1 的可能建议:

您可以从后端发送映射(即选择 -> input_filed)。然后在从后端收到映射后,您可以进行条件表单输入)。

假设,您从后端发送以下内容:

  • 如果我选择,将出现输入字段 F1。

  • 如果我选择 B 输入字段 F2 将出现。

为了实现这一点,当然您必须在数据库的一个表中拥有此映射。然后剩下的就在前端完成。

针对问题 #2 的可能建议:

方法 1:

You may keep a table where it will act like a super class. That means all the possible types (varchar / float / integer / tinyint) should exist in your table.

缺点:浪费空间,因为对于此表中的每个条目,只有一个字段会被填充,其他字段将留空。

方法2:

您不应该将 MYSQL 用于此目的。您可以使用任何 NoSQL 数据库。 请看一下这篇文章。经历这个。我相信你会明白的。 dynamic columns and data type in mysql

方法3: 有很多方法。 这些链接可能会有所帮助。

How to design a database for User Defined Fields?

https://softwareengineering.stackexchange.com/questions/204097/dynamic-form-builder-forms-and-database-design

美好的一天!!

关于mysql - 如何为表单生成器及其记录创建数据库表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28826068/

相关文章:

MySQL、MSSql、甲骨文 : When to use which?

PHP - 在数据库问题中编辑数据

mysql - 如何像黑客新闻一样排序

android - 将数据库从 Assets 复制到数据库文件夹

sql - 多对多查询

mysql - 数据库设计不支持产品录入。

mysql - 处理同一个表上的多个多对多关系?

javascript - 使用 php+mysql 和 jquery ajax post 填充三个后续选择列表

mysql - 在连接中使用 Max()

php - 无法通过数据库查询验证用户