【问题标题】:How to create database tables for a form-generator and its record?如何为表单生成器及其记录创建数据库表?
【发布时间】:2015-05-03 18:22:35
【问题描述】:

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

需求分为后端/前端,

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

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

前端:可以存储表单值

问题是:

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

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

感谢的帮助

【问题讨论】:

  • 请您解释一下问题 1 吗?
  • 我使用 html-generator 库来生成表单,为此您可以将表单的结构存储在一个表中,并且每次您需要一个表单来显示该表中的使用并解析结构以制作形式。对于存储表单数据,您可以使用枢轴结构。
  • 也就是说,首先管理员可以在表单中设计选择框,对于选择框选项,可以具体选择时是否显示其他输入框。跨度>
  • 例如,当输入框A(即选择框)中的optionA被选中时,显示输入框B,否则隐藏框B

标签: mysql database database-design relational-database


【解决方案1】:

问题 #1 的可能建议:

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

假设,你从后端发送这个:

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

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

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

对问题 2 的可能建议:

方法一:

您可以保留一个表,它会像一个超类一样。这意味着 所有可能的类型(varchar / float / integer / tinyint)都应该 存在于您的表中。

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

方法二:

您不应该为此目的使用 MYSQL。您可以使用任何 NoSQL 数据库。 请看一下这篇文章。通过这个。我相信你会有一个想法。 dynamic columns and data type in mysql

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

How to design a database for User Defined Fields?

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

美好的一天!

【讨论】:

  • 谢谢,对于问题 2,它可以在应用程序级别,例如 slove存储每个表的类型,例如int_val , varchar_val , bool_val 等。因为mysql是现在唯一的选择,谢谢
  • 您好,我已经编辑了答案。添加了一些链接。请通过这些链接。你会得到更多的想法。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-08-13
  • 2011-07-16
  • 1970-01-01
  • 2015-02-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多