2009-08-18 65 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)。