我正在开发一个表单生成器,但是,在尝试为其创建数据库时我感到很困惑。
需求分为后端/前端,
对于后端,管理员可以管理表单
- 具体表单名称
- 管理表单输入(仅允许输入框、选择框、复选框)
- 输入标题
- 需要吗?
- 如果选择框:
- 选项名称、值
- *当我选择值时是否会弹出其他输入?
- 如果输入框:
- 是数字/字符串类型吗?
前端:可以存储表单值
问题是:
1) 对于*,例如,如果用户选择选项A,则选项C是可见的,否则,它是隐藏的,如何存储关系?
2) 如何以这种形式存储值?如果我放入一张表/值可能是varchar/float/integer/tinyint
感谢您的帮助
最佳答案
针对问题 #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?
美好的一天!!
关于mysql - 如何为表单生成器及其记录创建数据库表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28826068/