@kajidooto

Как составить схему данных для опросов?

Не могу сообразить, как создать схему базы данных для опросов. Вопросы могут быть таких типов:

Животные
------------------
1. Вы любите домашних животных (да, нет, не очень)
2. Вы любите диких животных (да, нет, не очень)
3. Вы любите бездомных животных (да, нет, не очень)


Любите ли вы свою работу?
------------------
оцените по шкале (1, 2, 3, 4 ... 10)


Хотите ли повышения зарплаты:
------------------
 - да
 - нет


Что бы вы сделали, если бы вы потеряли работу
------------------
 - ничего
 - стал бы паниковать
 - расслабился бы
 - радовался


Это упрощенно. Не могу понять, как бы сделать так, чтобы были и предопределенные ответы (1, 2...10, да-нет) и свободные, и группы вопросов с общей шкалой, как в 1ом вопросе.
И то же время, чтобы это хорошо ложилось в схему базы данных. Без повторения и чтобы была целосность данных.

Будет одна таблица для предопределенные_опции_ответов, где будет

да, нет, не очень, 1...10, да, нет
+ надо еще как-то додумать куда поместить варианты ответа на 4ой тип вопросов.

Итак, будет таблица с вопросами. Связь будет многие ко многим с таблицей предопределенные_опции_ответов. Ну, а дальше....?
  • Вопрос задан
  • 346 просмотров
Пригласить эксперта
Ответы на вопрос 2
Для вопросов
id (int) | question (text) | answer (json)

Для ответов
id (int) | user_id (key id user) | question_id (key id question) | answer_id (key id answer json)
Ответ написан
Falseclock
@Falseclock
решаю нестандартные задачи
Вообще в данном случае требуется три таблицы:

1. таблица с сущностью
question_id serial
question_type enum
question_date
question_foo и другие параметры

2. Таблица с вопросами, где может быть 1 вопрос или несколько
question_data_id serial
question_data_text text
question_id int - ссылка на родителя

3. Таблица ответов
question_data_answer_id - serial
question_data_answer_text - txt
question_data_answer_score - int
question_data_id - ссылка на родительскую таблицу

Все... В зависимости от question_type будете формировать разные виды построения опросника. Целостность соблюдается.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы