2009-08-18 10 views
0

フィールドID、FormNameおよび他のいくつかのフィールドを持つフォームという表があります。sqlデータの取得に関するヘルプ

FormIdを外部キーとして持ち、IDとFieldNameとFieldValueフィールドを持つFormFieldsという別のテーブルがあります。

これは、一般的なフォームのデータを保存して取得できるはずだということです。

フォームテーブルからすべてのデータを取得し、すべてのデータを正しいFormIdに関連付けるにはどうすればよいですか?

など。 FormFieldsテーブルのすべてのデータを格納できる列 "FormData"を持つ行を返すようにします。

私はSQL Serverを使用しています

答えて

0

私は動的ピボット操作が必要だと思います。 SQLServerピボットは静的な名前の列を必要とするので、クエリを動的に構築することをお勧めします。

これの良い例は、hereです。

これが役に立ちます。

0

フォームデータ(ユーザーがフォームに入力するデータ)を、フォームスキーマを格納する同じテーブル(フォームを記述するデータ)に格納したくない場合。概念的には、これはクラスとインスタンスの間の区別と同じです。つまり、フォームスキーマはクラスに似ています。塗りつぶしフォームはそのフォームのインスタンスに似ています。

したがって、フォームとそのフォームのフィールドを一覧表示するテーブルを一覧表示するテーブルがあります。すばらしいです。フォーム@FormIDのフィールドスキーマを取得するには:

Select * 
From  FormFields 
Where  FormID = @FormID 

は、おそらくあなたは、いくつかの方法でフォームをレンダリングし、ユーザーがフィールドに移入することができます。保存するときは、このデータを別の場所に保存する必要があります。あなたは、テーブルの別のセットでは、このデータを保存コールド:にデータベースを使用している間、あなたのフォームスキーマとフォームの内容を保存するためのファイルを使用してオフにはるかに優れている、しかし

Table: FormInstances 
    Field: ID int - form instance ID 
    Field: FormID int - link to table FormTable 
    Field: Name varchar(50) - a short descriptive name of this instance (e.g. Bobs expenses for 1/1/2010) 
    Field: Created datetime 
    Field: Edited datetime 
    etc. 

Table: FormFieldData 
    Field: ID int 
    Field: FieldID int - link to table FormFields 
    Field: Value (this is the problem with an abstract system like this - what data type to use for the field values) 
    etc. 

フォームを管理します。この種の目的でXMLが作成されました(q.v. XForms)。

関連する問題