0

我的数据库包含具有值的模板表单和真实表单。用户将能够创建具有不同类型字段的自定义模板表单。我会将值保存在单独的表中。

表格:

Id | Name | TemplateId

表单字段表:

Id | FormId | Name | ValueType (nvchar)

值表

FieldId | Value

当用户设计表单时,它会保存到具有 TemplateId 的表单表中NULL。FormFields 表还存储将用于此表单的字段。稍后当用户使用该模板创建真实表单时,该表单的真实值(从 FormFields 派生)将存储在 Values 表中。现在,值表中的值列似乎是sql_variant类型。如果我不使用sql_variant如何解决这个问题?

Ps:为每种值创建不同的表怎么样?TableIntValues、TableBoolValues 等?

http://www.jotform.com/可以作为我项目的一个很好的示例。

4

1 回答 1

0

我建议按照以下方式对单独的数据类型使用单独的列:

FieldId | StringValue | IntegerValue  |  DateTimeValue

这样,您就可以合理地对数据进行查询,并确保其类型安全。您显然需要确保数据正确填充的逻辑,以及确保仅填充一列而不是全部为 NULL 的约束。

于 2013-04-10T12:11:24.123 回答