Necesito crear una encuesta donde las respuestas se almacenan en una base de datos. Me pregunto cuál sería la mejor manera de implementar esto en la base de datos, específicamente las tablas requeridas. La encuesta contiene diferentes tipos de preguntas. Por ejemplo: campos de texto para comentarios, preguntas de opción múltiple y posiblemente preguntas que podrían contener más de una respuesta (es decir, marque todas las que correspondan).
Se me ocurrieron dos posibles soluciones:
Cree una tabla gigante que contenga las respuestas para cada envío de encuesta. Cada columna correspondería a una respuesta de la encuesta. es decir, SurveyID, Answer1, Answer2, Answer3
No creo que esta sea la mejor manera, ya que hay muchas preguntas en esta encuesta y no parece muy flexible si la encuesta va a cambiar.
La otra cosa que pensé fue crear una tabla de preguntas y una tabla de respuestas. La tabla de preguntas contendría todas las preguntas para la encuesta. La tabla de respuestas contendría respuestas individuales de la encuesta, cada fila vinculada a una pregunta.
Un simple ejemplo:
tblSurvey : SurveyID
tblQuestion : QuestionID, SurveyID , QuestionType, Question
tblAnswer : AnswerID, ID de usuario , IdPregunta , respuesta
tblUser : UserID , UserName
Mi problema con esto es que podría haber toneladas de respuestas que harían que la tabla de respuestas sea bastante grande. No estoy seguro de que sea tan bueno cuando se trata de rendimiento.
Agradecería cualquier idea y sugerencia.
fuente