如何为动态表单设计数据库表(用户定义的字段)

时间:2014-10-11 07:06:04

标签: sql-server database database-design

单个值,例如Text,Number,Decimal,并不难,但是无线电选项呢?复选框?


单值UDF

FORM
- Id
- AttributeName
- DataTypeId

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

DATATYPE
- Id
- DataTypeName

1 个答案:

答案 0 :(得分:0)

首先,我会使用" atrributes"只是输入并将其移动到规范化表格。

让我们先做重新评估:

  1. ComboBox - 状态(0/1)

    CREATE TABLE CHECKBOX(    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)
    )
    
  3. 在解析查询到您的应用程序时,对每个单选按钮添加ra_id。 保存结果时,获取rv_id whitch表示选定的值。


    所以现在让我们做一个表单

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

    所以你有一个表格,指的是复选框和radiogroup项目。 在应用程序中,您必须将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)
    

    我迟到了,但我相信你"赶上"理论。