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

Если правильно понял задачу
для случая без историзации 1 и 2
...
Рейтинг: 0 / 0
База данных для анкеты
    #36529023
_kyky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В случае нового ответа вроде как все сростается, только думаю нужно отличать
ответы предустановленные и новые пользовательские,
например добавив поле признака (0/1)
...
Рейтинг: 0 / 0
База данных для анкеты
    #36529057
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
База данных для анкеты
    #36529076
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати булево это частный случай перечисления, но можно в отдельное вынести
С уважением, Naf
...
Рейтинг: 0 / 0
База данных для анкеты
    #36529096
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ах да, на все ответы надо еще "правильные ответы"
С уважением, Naf
...
Рейтинг: 0 / 0
База данных для анкеты
    #36532439
Lex_th
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Naf
Таблица Перечислений (для значений перечисления и множеств значений)
1. Код

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

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


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