Мне нужно создать опрос, где ответы хранятся в базе данных. Мне просто интересно, как лучше всего реализовать это в базе данных, особенно в необходимых таблицах. Опрос содержит разные типы вопросов. Например: текстовые поля для комментариев, вопросы с несколькими вариантами ответов и, возможно, вопросы, которые могут содержать более одного ответа (т.е. отметьте все подходящие варианты).
Я придумал два возможных решения:
Создайте огромную таблицу, содержащую ответы на каждый отправленный опрос. Каждый столбец будет соответствовать ответу из опроса. т.е. SurveyID, Ответ1, Ответ2, Ответ3
Я не думаю, что это лучший способ, поскольку в этом опросе много вопросов и он не кажется очень гибким, если опрос должен измениться.
Еще я подумал о создании таблицы вопросов и таблицы ответов. Таблица вопросов будет содержать все вопросы для анкеты. Таблица ответов будет содержать отдельные ответы из опроса, каждая строка которых связана с вопросом.
Простой пример:
tblSurvey : SurveyID
tblQuestion : QuestionID, SurveyID , QuestionType, Вопрос
tblAnswer : AnswerID, Идентификатор_пользователь , QuestionID , Ответить
tblUser : UserID , UserName
Моя проблема в том, что может быть множество ответов, которые сделают таблицу ответов довольно большой. Я не уверен, что это так здорово, когда дело касается производительности.
Буду признателен за любые идеи и предложения.