私のデータベースには、テンプレートフォームと値を持つ実際のフォームが含まれています。ユーザーは、さまざまな種類のフィールドを含むカスタム テンプレート フォームを作成できます。値は別のテーブルに保持します。
フォーム テーブル:
Id | Name | TemplateId
FormField テーブル:
Id | FormId | Name | ValueType (nvchar)
値テーブル
FieldId | Value
ユーザーがフォームをデザインすると、 TemplateId を持つフォーム テーブルに保存されますNULL
。また、FormFields テーブルには、このフォームに使用されるフィールドが格納されます。後でユーザーがそのテンプレートを使用して実際のフォームを作成すると、このフォームの実際の値 (FormFields から取得) が Values テーブルに格納されます。現在、値テーブルの値列はsql_variant
タイプのようです。使用しない場合sql_variant
、どうすればこの問題を解決できますか?
Ps: 値の種類ごとに異なるテーブルを作成するのはどうですか? TableIntValues、TableBoolValues など?
http://www.jotform.com/は、私のプロジェクトの良いサンプルです。