おそらく、次のようなデータベース構造を作成します。
-- This table will hold the forms
CREATE TABLE tblForm
(
Form_Id int IDENTITY(1,1) PRIMARY KEY
, Form_Name varchar(100)
-- Any other form related data such as create date, owner etc`
)
-- This table will hold the input types (i.e text box, combo box, radio buttons etc`)
CREATE TABLE tblInputType
(
InputType_Id int IDENTITY(1,1) PRIMARY KEY
, InputType_Name varchar(100)
)
-- This table will hold the inputs used in the form
CREATE TABLE tblFormInput
(
FormInput_Id int IDENTITY(1,1) PRIMARY KEY
, FormInput_Form int FOREIGN KEY REFERENCES tblForm(Form_Id)
, FormInput_InputType int FOREIGN KEY REFERENCES tblInputType(InputType_Id)
, FormInput_Name varchar(100)
, FormInput_DisplayOrder numeric(18,18)
, FormInput_DefaultText varchar(100)
)
-- This table will hold the texts and values used for combo boxes, radio buttons, check boxes etc`
CREATE TABLE tblFormInputExtraData
(
FormInputExtraData_FormInput int FOREIGN KEY REFERENCES tblFormInput(FormInput_Id)
, FormInputExtraData_Text varchar(100)
, FormInputExtraData_Value varchar(100)
)
興味がある点:
この例では、任意の数値として、すべてのテキスト データに varchar(100) を使用しました。アプリケーションに適したコンテンツの長さを選択する必要があります。
簡単なので、コンボ ボックスやラジオ ボタンなどの入力の値を格納するためにも varchar を使用しました。テキスト以外の値 (.Net オブジェクトや画像など) を使用する場合は、このデータ型をニーズに合ったものに変更する必要があります。xml と varbinary が思い浮かびます。