Preciso criar uma pesquisa em que as respostas sejam armazenadas em um banco de dados. Só estou me perguntando qual seria a melhor maneira de implementar isso no banco de dados, especificamente as tabelas necessárias. A pesquisa contém diferentes tipos de perguntas. Por exemplo: campos de texto para comentários, perguntas de múltipla escolha e possivelmente perguntas que possam conter mais de uma resposta (por exemplo, marque todas as opções aplicáveis).
Eu vim com duas soluções possíveis:
Crie uma tabela gigante que contenha as respostas para cada envio de pesquisa. Cada coluna corresponderia a uma resposta da pesquisa. ie SurveyID, Answer1, Answer2, Answer3
Não acho que seja a melhor maneira, pois há muitas perguntas nesta pesquisa e não parece muito flexível se a pesquisa for alterada.
A outra coisa que pensei foi criar uma tabela de perguntas e uma tabela de respostas. A tabela de perguntas conteria todas as perguntas da pesquisa. A tabela de respostas conteria respostas individuais da pesquisa, cada linha vinculada a uma pergunta.
Um exemplo simples:
tblSurvey : SurveyID
tblQuestion : QuestionID, SurveyID , QuestionType, Question
tblAnswer : AnswerID, UserID , QuestionID , Answer
tblUser : UserID, UserName
Meu problema com isso é que poderia haver toneladas de respostas que tornariam a tabela de respostas bastante grande. Não tenho certeza se isso é tão bom quando se trata de desempenho.
Eu apreciaria todas as idéias e sugestões.