我的数据库包含具有值的模板表单和实际表单。用户将能够使用不同类型的字段创建自定义模板表单。我会将值保存在一个单独的表中。
表格表格:
Id | Name | TemplateId
FormFields表:
Id | FormId | Name | ValueType (nvchar)
价值表
FieldId | Value
当用户设计表单时,它会保存到具有TemplateId NULL
的表单表中。 FormFields表还存储将用于此表单的字段。
稍后,当用户使用该模板创建真实表单时,此表单的实际值(从FormFields中提取)将存储在Values表中。
现在,Values表中的value列似乎是sql_variant
类型。如果我不使用sql_variant
,我该如何解决这个问题?
Ps:为每种值创建不同的表怎么样? TableIntValues,TableBoolValues等?
http://www.jotform.com/可以成为我项目的一个很好的样本。
答案 0 :(得分:0)
我建议对这些单独的数据类型使用单独的列:
FieldId | StringValue | IntegerValue | DateTimeValue
通过这种方式,您可以明智地对数据进行查询,并确保其类型安全。您显然需要逻辑来确保正确填充数据,并且需要一个约束来确保只填充一列而不是全部都是NULL。