Как лучше всего хранить данные вопросов в базе данных?

Существует мастер, который может содержать более 150 вопросов или только 10. Каждый вопрос может отличаться от вопроса, заданного ранее. Например, возможно, что один вопрос требует от вас ответа «Да/Нет», но следующий может содержать список с несколькими вариантами ответов с четырьмя вариантами. Также должна быть возможность заполнить полностью открытый ответ на вопрос, заданный в этом мастере. Мастер состоит из нескольких разделов.

Результаты этого мастера также должны быть оценены. Например: «Вы когда-нибудь забывали надеть обувь, когда шли на работу?» «Да/Нет» Если пользователь ответил «да», мы должны оценить это и сказать ему, что он должен поставить свою обувь у двери, чтобы он никогда больше не забыл об этом. (пример)

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


person Younes    schedule 15.01.2010    source источник
comment
Вы также можете найти базу данных At Your Survey Access от Duane Hookum здесь: rogersaccesslibrary.com/forum /forum_posts.asp?TID=3 это (в основном) нормализованная база данных, в которой вы можете найти дополнительную информацию о том, как создать базу данных опросов.   -  person Leslie    schedule 15.01.2010


Ответы (3)


Вы определенно не должны пытаться поместить все это в одну большую таблицу. Мой дизайн будет выглядеть примерно так:

волшебник

Идентификатор, имя, предисловие, AnyOtherInfoYouMightWantToStore

Вопрос

Идентификатор, WizardId, вопрос, номер сортировки

Альтернатива

Id, QuestionId, TypeId (радио, флажок, произвольный текст, многострочный произвольный текст...), имя, SortNumber

Отвечать

Id, UserId (полагаю, у вас есть некоторое решение для учетной записи пользователя), QuestionId, AlternativeId

Примерно так. Так что мастер может содержать много вопросов, а вопрос может содержать много альтернатив (да + нет радиокнопок будет по одной записи в таблице альтернатив, но вы также можете делать более сложные вещи, такие как несколько флажков и внизу , текстовое поле «Другое»)

person David Hedlund    schedule 15.01.2010

Барри Уильямс поддерживает бесплатную библиотеку моделей данных, которая включает модели для четырех различных вопросников. Они варьируются от простого до комплекс.

Его сложная модель выглядит как отправная точка. Но вы, вероятно, захотите расширить его, включив в него тип вопроса «Да/Нет» (вместо того, чтобы рассматривать их как особый случай множественного выбора). Вам также потребуется добавить сущность для хранения последующего текста.

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

person APC    schedule 15.01.2010

Я предлагаю вам прочитать о нормализации базы данных на Википедии или на другом веб-сайте — на этом сайте есть множество ресурсов. .

Короче говоря, у вас будет таблица для вопросников (Вопросник) и таблица для вопросов (Вопрос), а также таблица для респондентов (Респондент) и таблица для ответов (Ответ).

Затем вы создадите анкеты, которые представляют собой вопросы, связав две таблицы. Респонденты будут связаны с записями в таблице ответов, которые будут связаны с записями в таблице вопросов.

person Bernhard Hofmann    schedule 15.01.2010