在 SQL 方面,我完全是新手。我正在 ASP.NET 中创建一个站点来进行调查。特权管理员用户将能够构建调查。然后会有很多其他人回复调查。
一旦我有了新调查的一组问题,自动构建表和 INSERT 查询来存储答案的最佳方法是什么?
更新
感谢您的快速回复!我仍然不清楚在这种情况下如何最好地存储调查响应。每个受访者会得到表格的一排吗?如果是这样,这些列是否会是“针对第 1 列中的条目确定的调查的问题 k 给出的答案”?
最佳答案
您不想为每个调查建立一个新表。
创建调查表(SurveyID、UserID、姓名等)
创建问题表(QuestionID、SurveyID、QuestionText、SortOrder 等)
(可选)创建一个选项表,假设您有多项选择类型的问题(OptionID、QuestionID、OptionText 等)
然后当有人创建调查时,您插入到调查表中,引用该人的用户 ID 作为外键,然后获取新插入的调查 ID,
然后对于他们添加的每个问题,将其插入到 Questions 表中,使用上面的 SurveyID 作为外键......等等。
编辑回答您的编辑:
抱歉,我也应该继续介绍存储答案。
您需要另一个名为 SurveyResponses 的表(ResponseID、Name 等) 另一个表我将调用 ResponseAnswers(ResponseAnswerID, SurveyID, ResponseID, QuestionID, AnswerText/AnswerID) 其中 SurveyID 和 ResponseID 是他们各自表的外键,并且根据用户是否有多项选择,或者输入答案,你要么将他们的答案存储为 text(varchar) 或作为选项表的另一个外键。
关于存储调查和答案的 SQL 结构 - 基于用户数据构建表和查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/584791/