存储调查和答案的SQL结构-基于用户数据构建表和查询?
说到SQL,我完全是个新手。我正在ASP.NET中创建一个网站,用于进行调查。拥有特权的管理员用户将能够构建调查。然后很多其他人会对调查做出回应 一旦我有了新调查的问题集,自动构造表和插入查询以存储回答的最佳方法是什么 更新存储调查和答案的SQL结构-基于用户数据构建表和查询?,sql,survey,auto-generate,Sql,Survey,Auto Generate,说到SQL,我完全是个新手。我正在ASP.NET中创建一个网站,用于进行调查。拥有特权的管理员用户将能够构建调查。然后很多其他人会对调查做出回应 一旦我有了新调查的问题集,自动构造表和插入查询以存储回答的最佳方法是什么 更新 感谢您的快速回复!我仍然有点不清楚在这种情况下如何最好地存储调查结果。每个受访者会得到一排桌子吗?若然,该栏是否为“第1栏中的条目确定的调查问题k的答案” 您可能不希望以编程方式生成模式 相反,要为调查、问题(属于调查)、响应集(每个用户一个)和问题响应(属于响应集)创建一
感谢您的快速回复!我仍然有点不清楚在这种情况下如何最好地存储调查结果。每个受访者会得到一排桌子吗?若然,该栏是否为“第1栏中的条目确定的调查问题k的答案” 您可能不希望以编程方式生成模式
相反,要为调查、问题(属于调查)、响应集(每个用户一个)和问题响应(属于响应集)创建一个表格。您不想为每个调查创建新表格 创建调查表(SurveyID、UserID、Name等) 创建问题表(问题ID、调查ID、问题文本、排序器等) (可选)创建选项表,假设您有多项选择类型的问题(OptionID、QuestionID、OptionText等) 然后,当有人创建调查时,您将其插入调查表,引用该人的用户ID作为外键,然后获取新插入的SurveyID 然后,对于他们添加的每个问题,将其插入问题表,使用上述SurveyID作为外键。。等等 编辑以回答您的编辑: 很抱歉,我本应该继续讨论存储答案 您需要另一个名为SurveyResponses的表(ResponseID、Name等)
还有另一个表,我将调用ResponseAnswers(ResponseAnswerID、SurveyID、ResponseID、QuestionID、AnswerText/AnswerID),其中SurveyID和ResponseID是各自表的外键,根据用户是否有多项选择,或者输入答案,您可以将其答案存储为文本(varchar)或者作为选项表的另一个外键。您不会自动构造该表。表格将被预定义,答案将被添加到表格中。我认为现在开始使用ASP.NET的最好方法是深入研究MVC和Linq)我会想到几个选择:
- 创建一个一对多
表和调查
表,其中每个问题
都有一个列问题
,该列包含我们期望的响应数据类型的代码,还可以选择一些其他列/可用选项的相关表,该列指定此问题是否为多选/单选,强制性/可选问题等。数据类型
表格的答案根据问题数据类型进行序列化/取消序列化/索引/格式化等答案
- 考虑使用NoSql数据库以类似的方式存储调查数据