2009-08-18 67 views
0

我有一個表格,其中包含字段ID,FormName和其他字段。獲取數據的sql幫助

我有另一個名爲FormField的表,它具有FormId作爲外鍵以及ID和FieldName和FieldValue字段。

這個想法是,這應該能夠保存和檢索通用形式的數據。

如何從Forms表中獲取所有數據並將所有數據與正確的FormId相關?

E.g.我希望它返回帶有「FormData」列的行,該列可以存儲來自FormFields表的所有數據。

我使用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)。