Уникальный вид анкеты - Дизайн базы данных - PullRequest
0 голосов
/ 19 марта 2020

Для исследовательского эксперимента мне нужно разработать веб-приложение, которое реализует определенный вид вопросника, результаты которого будут служить для получения некоторой статистики и для некоторых выводов.

Короче говоря, вопросник должен работать следующим образом

1 -> Все ответы находятся в масштабе от абсолютно ложного до абсолютно правильного или открытого ответа.

2 -> Каждый набор вопросов соответствует заданному слову (например, BIRD или FI SH) и описанию (небольшое предложение).

3 -> В пределах одного набора все вопросы могут принять форму небольшого предложения (текст) или изображения (для категоризации), и каждый набор может содержать произвольное количество вопросов. Мне нужно иметь возможность хранить вопросы, которые соответствуют одному слову, как текст, так и изображения, и иметь возможность выбирать между ними.

4 -> Каждому набору вопросов соответствуют 5 различных виды помощи. В анкете типа А пользователь может выбрать один по желанию. В анкете типа B показаны все виды.

5 -> Пользователь должен ответить на все вопросы один раз (и они должны появляться в случайном порядке). Затем, если наберете A, он должен выбрать вид помощи или отказаться от получения помощи и, возможно, изменить свой ответ. Или, если вы наберете тип B, просмотрите все виды помощи один за другим (в случайном порядке) и, возможно, измените его ответ.

6 -> Для каждого вопроса, для каждого типа вопросника Я должен знать, был ли изменен ответ, какая помощь вызвала изменение у пользователя и (если тип B) появилась ли эта помощь 1-го, 2-го, 3-го и т. Д. c.

Я понимаю, что те может быть, не самые сложные требования, но я новичок в этом и довольно смущен. Мои отношения до сих пор выглядят примерно так:

  • QUESTIONNAIRE ( id , help_choice, type, phase)
  • QUESTION_CATEG ( id, тип, имя, описание)
  • ИЗОБРАЖЕНИЕ ( # qcat_id , путь к файлу)
  • ТЕКСТ ( # qcat_id , содержимое)
  • ВКЛЮЧАЕТ ( # questionnaire_id , # qcat_id )
  • HELP ( # id , # qcat_id , content)
  • ОТВЕТ ( # questionnaire_id , # qcat_id , response, was_modified, help_taken, help_order).

С помощью help_taken можно принимать специальные значения, обозначающие no-help, и help_choice могут принимать специальные значения, обозначающие, что вся помощь была показана.

Меня беспокоят разные типы вопросов. Мне не очень нравится (и мне это не сработает) способ, которым я провел различие между типом текста и вопросом о типе изображения для данной категории вопросов. Зная, что для данной категории (скажем, BIRD) у меня могут быть оба типа (изображение и текст), я включил атрибут 'type' в QUESTION_CATEG . Но я чувствую, что повторяю информацию.

Есть ли у вас какие-либо намеки на то, как это можно исправить. Или даже идеи для совершенно другого подхода. Любая помощь приветствуется.

1 Ответ

0 голосов
/ 23 марта 2020

Это похоже на работу.

  1. Q_CATEG ( id , имя, заказ, описание, включены)

  2. ВОПРОС ( id , q_categ_id, тип, содержание, заказ)

  3. AVAIL_ANSWER ( id , question_id, content, order)

  4. HELP_CATEG ( id , порядок, имя, описание)

  5. HELP ( help_categ_id , q_categ_id , заказ, содержание)

  6. QUESTIONNAIRE ( id , тип, фаза, начало, конец)

  7. GIVEN_ANSWER ( questionnaire_id , вопрос_ид , ответ_ид, измененный_ответ_данных, причина_ответа_идера, справочный_категория_правки, справочный_приказ)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...