Типы данных в проекте опрос-викторина


(Yauheni Dakuka) #1

Проект: есть несколько опросов, в каждом несколько вопросов. В каждом вопросе (вопрос, варианты ответа). Как мне лучше всего хранить “варианты ответов” в модели и как извлекать потом при использовании? Не хотелось бы изобретать велосипед…

Первое, что пришло в голову:

  • все в одной строке и разделители
  • несколько переменных ответ1, ответ2, ответ3…
  • другой какой-то вариант

(Хотел прикрепить изображение схемы бд, но не хватает прав)


(Evgeniy) #2

hstore как вариант


(Николай) #3

Да ну как, берете и создаете связанные таблицы: tests, questions, answers_variants, users_answers, user.
И делаете соответствующие внешние ключи/ связи в модели: в questions test_id и text, в answers_variants question_id и text, в users_answers user_id и answer_variant_id можно еще test_id и question_id что бы не лазить по моделям долго.
Короче просто сохраняете иды выбранных вариантов.
Если же вопрос состоит в том как именно связи прописывать - почитайте http://rusrails.ru/active-record-associations хотя думаю вы должны были это уже посмотреть.