当前位置:  开发笔记 > 后端 > 正文

用于存储调查和答案的SQL结构 - 根据用户数据构建表和查询?

如何解决《用于存储调查和答案的SQL结构-根据用户数据构建表和查询?》经验,为你挑选了1个好方法。

在SQL方面,我是一个新手.我正在ASP.NET中建立一个网站进行调查.特权管理员用户将能够构建调查.然后很多其他人会回应调查.

一旦我有了一组新调查的问题,自动构建表的最佳方法是什么,INSERT查询存储响应的最佳方法是什么?

UPDATE

感谢您的快速回复!关于如何在这种情况下最好地存储调查答复,我仍然有点不清楚.每个受访者都会获得一排桌子吗?如果是这样,那么这些专栏是"为第1栏中的条目确定的调查问题k给出答案"吗?



1> Neil N..:

您不想为每个调查构建一个新表.

创建调查表(SurveyID,UserID,Name等)

创建问题表(QuestionID,SurveyID,QuestionText,SortOrder等)

假设你有多种选择类型问题(OptionID,QuestionID,OptionText等),可选择创建一个Options表

然后,当有人创建调查时,您插入到Surveys表中,将该人的UserID作为foriegn键引用,然后获取新插入的SurveyID,

然后对于他们添加的每个问题,使用上面的SurveyID作为foriegn键将其插入到Questions表中,依此类推.

编辑来回答您的编辑:

对不起,我应该跟进以涵盖存储答案.

您可能需要另一个名为SurveyResponses(ResponseID,Name等)的表和另一个表我将调用ResponseAnswers(ResponseAnswerID,SurveyID,ResponseID,QuestionID,AnswerText/AnswerID),其中SurveyID和ResponseID是相应表的foriegn键,并且取决于如果用户有多种选择,或者输入答案,您可以将其答案存储为文本(varchar)或另一个foriegn密钥存储到选项表中.

推荐阅读
牛尾巴2010
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有