在SQL方面,我是一个新手.我正在ASP.NET中建立一个网站进行调查.特权管理员用户将能够构建调查.然后很多其他人会回应调查.
一旦我有了一组新调查的问题,自动构建表的最佳方法是什么,INSERT查询存储响应的最佳方法是什么?
UPDATE
感谢您的快速回复!关于如何在这种情况下最好地存储调查答复,我仍然有点不清楚.每个受访者都会获得一排桌子吗?如果是这样,那么这些专栏是"为第1栏中的条目确定的调查问题k给出答案"吗?
您不想为每个调查构建一个新表.
创建调查表(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密钥存储到选项表中.