【问题标题】:How to design database tables for dynamic forms (User defined fields)如何为动态表单设计数据库表(用户定义字段)
【发布时间】:2014-10-11 07:06:03
【问题描述】:

Text、Number、Decimal 等单个值并不难,但单选选项呢?复选框?


单值UDF

FORM
- Id
- AttributeName
- DataTypeId

FORMVALUE
- Id
- FormId
- UserId (user that entered the value)
- Value

DATATYPE
- Id
- DataTypeName

【问题讨论】:

    标签: sql-server database database-design


    【解决方案1】:

    首先,我将使用“属性”仅作为输入并将其移动到规范化表中。

    让我们先做研究:

    1. 组合框 - 状态 (0/1)

      创建表格复选框( cb_id, cb_label, cb_state 位 --0 否 1 是)

    2. RadioButton - 选中状态的组。 嗯……

      CREATE TABLE RadioGroup (
      rg_id int primary increment etc,
      rg_name,
      rg_selectedindex)
      Create table RadioVariants
      (rv_id,
      rv_rd_id,
      rv_label -- text to show on site)
      )
      

    在将查询解析到您的应用程序时,向每个单选按钮添加 ra_id。 在保存结果时,你会得到 rv_id 代表选定的值。


    现在让我们做一个表格

    CREATE TABLE Form (fa_id, fa_name)
    CREATE TABLE FormControlls (fac_id, fa_id, fa_rg_id, fa_cb_id)
    

    所以最后你有一个表单,其中包含复选框和无线电组项目。 在应用程序中,您必须将 rv_id 设置为 radiogroup 变体并将其传递给 UserFormData。

    CREATE TABLE UserFormData (ufd_id, ufd_fa_id, fa_rg_id, fa_rg_value --ID of selected variant,
    fa_cb_id, fa_cb_value --state of checkbox)
    

    我开会迟到了,但我相信你“明白”了这个理论。

    【讨论】:

      猜你喜欢
      • 2011-07-03
      • 2012-03-13
      • 1970-01-01
      • 1970-01-01
      • 2016-04-30
      • 2020-08-21
      • 1970-01-01
      • 2010-12-07
      • 1970-01-01
      相关资源
      最近更新 更多