Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / База данных для анкеты / 10 сообщений из 10, страница 1 из 1
18.03.2010, 16:21
    #36528969
Lex_th
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
База данных для анкеты
Здравствуйте! Подскажите чем сможете. Нужно хранить вопросы анкеты с вариантами ответов в базе данных. Вопросы могут быть ввод числа, да/нет, да/нет/не знаю, альтернатива (один вариант из множества), выборка (можно выбрать много вариантов из множества), ввести свой ответ. Как спроектировать правильно бд с разными вариантами ответов?
...
Рейтинг: 0 / 0
18.03.2010, 16:33
    #36529008
_kyky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
База данных для анкеты
Мне видятся три таблички:
1. ID вопроса(PK), Текст
2. ID ответа (PK), Текст
3.Ассоциатор 1 и 2 (FK) с признаком правильности, который является AK

Если правильно понял задачу
для случая без историзации 1 и 2
...
Рейтинг: 0 / 0
18.03.2010, 16:37
    #36529023
_kyky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
База данных для анкеты
В случае нового ответа вроде как все сростается, только думаю нужно отличать
ответы предустановленные и новые пользовательские,
например добавив поле признака (0/1)
...
Рейтинг: 0 / 0
18.03.2010, 16:45
    #36529057
Naf
Naf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
База данных для анкеты
Таблица Анкеты
1. Код
2. Наименование

Таблица Перечислений (для значений перечисления и множеств значений)
1. Код

Таблица Значений перечислений (для значений перечисления и множеств значений)
1. Код
2. Код перечисления
3. Текст

Таблица Вопросы
1. Код
2. Код анкеты
3. Текст вопроса
4. Тип ответа (число, булево, значение перечисления, множество, строка)
5. Код перечисления (только для перечислений и множеств)

Таблица Анектируемые
1. Код
2. Наименование

Таблица Ответы
1. Код
2. Код вопроса
3. Код анкетируемого

Таблица Ответы-числа
1. Код ответа (уникальный)
2. Значение

Таблица Ответы-булево
1. Код ответа (уникальный)
2. Значение

Таблица Ответы-перечисления
1. Код ответа (уникальный)
2. Код значения перечисления

Таблица Ответы-множества
1. Код ответа (НЕ уникальный)
2. Код значения перечисления


Таблица Ответы-строки
1. Код ответа (уникальный)
2. Значение

С уважением, Naf
...
Рейтинг: 0 / 0
18.03.2010, 16:49
    #36529076
Naf
Naf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
База данных для анкеты
Кстати булево это частный случай перечисления, но можно в отдельное вынести
С уважением, Naf
...
Рейтинг: 0 / 0
18.03.2010, 16:57
    #36529096
Naf
Naf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
База данных для анкеты
Ах да, на все ответы надо еще "правильные ответы"
С уважением, Naf
...
Рейтинг: 0 / 0
20.03.2010, 14:56
    #36532439
Lex_th
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
База данных для анкеты
Naf
Таблица Перечислений (для значений перечисления и множеств значений)
1. Код

А как это таблица с одним полем?
...
Рейтинг: 0 / 0
20.03.2010, 16:33
    #36532505
mvb
mvb
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
База данных для анкеты
Lex_thNaf
Таблица Перечислений (для значений перечисления и множеств значений)
1. Код

А как это таблица с одним полем?Таблица нужна только для группировки значений перечислений в таблице "Таблица Значений перечислений", т.е.,
Код: plaintext
1.
2.
3.
4.
5.
Перечисление: код 1;
Значения: 
  Код значения 1, код перечисления 1, значение ДА
  Код значения 2, код перечисления 1, значение НЕТ
  Код значения 3, код перечисления 1, значение НЕ ЗНАЮ
Дополнительно таблица имеет смысл, если надумаешь сделать редактор анкет, тогда в таблице перечислений можно хранить наименование перечисления:
Код: plaintext
1.
2.
Перечисление: код 1; имя "ДаНетНезнаю"
Перечисление: код 2; имя "ДаНет"
...
Рейтинг: 0 / 0
20.03.2010, 17:16
    #36532530
Lex_th
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
База данных для анкеты
Это понял. Спасибо!
Тут с ответами получается что связь один к одному в таблице Ответы с каждой из таблиц ответов разных типов. Такое правильно? Вроде во всех правильных формах связь между таблицами может быть только один ко многим.
...
Рейтинг: 0 / 0
21.03.2010, 10:28
    #36533021
mvb
mvb
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
База данных для анкеты
Lex_th,
связь 1-1 используется обычно для расширения таблиц, которые не желательно изменять или они уже слишком "широкие"..
...
Рейтинг: 0 / 0
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / База данных для анкеты / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]