Модераторы: LSD
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Логическая модель, Вопрос относительно оптимальности. 
:(
    Опции темы
Гость_Mixer
Дата 5.7.2004, 13:42 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Добрый день...

Хочется услышать совет толковых людей...

Ситуация следующая: предположим мы создаем БД анкетирования и из все кучи наших таблиц у нас будет таблица которая непосредственно будет содержать результаты ответов. НА все вопросы даются варианты ответов, причем для многих вопросов возможен выбор нескольких вариантов.

Предположим что на каждый вопрос возможен выбор только одного варианта, тогда кажется разумным создать для каждого вопроса таблицу с вариантами ответов (или одну таблицу с вариантами для всех вопросов).

А как изящно сделать поддержку выбора нескольких вариантов ответов???
мне, как програмисту, в голову пришла идея с флагами, каждый бит соответствует одному варианту, в БД храним одно число. Но тогда как орагнизовать целостность данных в БД ???

В общем как поступают в подобных случаях ??? (интересует решение на логическом уровне)

За ранее благодарен...!!!
  Вверх
boevik
Дата 5.7.2004, 13:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1452
Регистрация: 31.5.2004
Где: Израиль

Репутация: 6
Всего: 35



Цитата
Но тогда как орагнизовать целостность данных в БД

Где возникает проблема целостности данных?

Можно создать табличку ответов, где для каждого вопроса содержится номер ответа.
Минус - еще одна табличка, несколько insert-ов в таблицу.
Плюс - более простая обработка ответов методами SQL.

Оба варианта имеют право на жизнь. Главное какова конечная цель обработки ответов и из этого исходить в выборе метода хранения ответов.


--------------------
Никогда не говори никогда
PM MAIL WWW   Вверх
Гость_Mixer
Дата 5.7.2004, 14:11 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Проблема возникает в том, что на каждый вопрос может быть несколько вариантов ответов.

И начинает пугать та путаница которая может получиться при большом количестве вопросов и анкет.

Вот и хотелось узнать, может быть есть какой нить способ организовать это все изящно...
  Вверх
Guest
Дата 5.7.2004, 14:17 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Цитата
мне, как програмисту, в голову пришла идея с флагами, каждый бит соответствует одному варианту, в БД храним одно число. Но тогда как орагнизовать целостность данных в БД ???

Целостности не будет, потому что это хранимое число будет отличатся от тех что храняся в таблицах ответов.

Пример:
1 (001) - вариант 1
2 (010) - вариант 2
4 (100) - вариант 3

число хранимое в таблице ответов:
3 (011) - вариант 1 и вариант 2
  Вверх
Zaman
Дата 5.7.2004, 15:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 219
Регистрация: 28.6.2004

Репутация: нет
Всего: 2



Работа с битами поддерживается в SQL2.

Цитата
А как изящно сделать поддержку выбора нескольких вариантов ответов


используй множество - я так бы и сделал
PM MAIL   Вверх
Guest
Дата 6.7.2004, 08:30 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Цитата(Zaman @ 5.7.2004, 15:59)
используй множество - я так бы и сделал

Уважаемый Zaman,

расскажите пожайлуста механизмы работы с множествами
(в конеретном случае используется MSSQL 2000)

или каким образом поддреживается работа с битами в SQL2.

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

Искрене признателен...
  Вверх
Zaman
Дата 6.7.2004, 12:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 219
Регистрация: 28.6.2004

Репутация: нет
Всего: 2



Цитата
Может быть Вам известны источники информации, которые могли бы послужить мне лучем света в этих вопросах.


Вот книга которой я иногда пользуюсь, попробуй может и тебе пригодиться:
Дж.Гроф, П. Вайнберг "Энциклопедия SQL".

Цитата
расскажите пожайлуста механизмы работы с множествами


Тип множество поддержиается в MySQL, а есть ли он SQLServer2000 мне сложно сказать, т.к. я с ним не работал.


PM MAIL   Вверх
Sardar
Дата 6.7.2004, 18:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: нет
Всего: 317



Или я чего то не понял...
Есть таблица с вопросами, таблица с ответами, ответы связанны с вопросами по ID вопроса. Запрос: для каждого из вопросов выбрать из ответов где ответы.ID_вопроса=вопрос.ID
Если есть несколько ворпосов с одинаковыми ответами, то можно просто их продублировать или создать третью таблицу связей вопрос->ответ.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
December
Дата 6.7.2004, 22:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Antitheorist
****


Профиль
Группа: Участник
Сообщений: 4423
Регистрация: 14.8.2002
Где: Харьков

Репутация: нет
Всего: 57



Mixer, если тебя интересует именно логика хранения данных для анкетирования, то я могу намылить тебе аналог в Excel, который я сделал для аналогичных целей. Можешь просто адаптировать это под БД.


--------------------
Для друзей с винграда - скидки на разработку сайтов
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Общие вопросы по базам данных"
LSD
Zloxa

Данный форум предназначен для обсуждения вопросов о базах данных не попадающих под тематику других форумов:

  • вопросам по СУБД для которых нет отдельных подфорумов
  • вопросам которые затрагивают несколько разных СУБД (например проблема выбора)
  • инструменты для работы с СУБД
  • вопросы проектирования БД
  • теоретически вопросы о СУБД

Данный форум не предназначен для:

  • вопросов о поиске разлиных БД (если не понимаете чем БД отличается от СУБД то: а) вам не сюда; б) Google в помощь)
  • обсуждения проблем с доступом к СУБД из различных ЯП (для этого есть соответсвующие форумы по каждому ЯП)
  • обсуждения проблем с написание SQL запросов, для этого есть форум Составление SQL-запросов
  • просьб о написании курсовой, реферата и т.п., для этого есть Центр помощи или фриланс биржа
  • объявлений о найме специалистов, для этого есть раздел Объявления о найме специалистов

Если вы не соблюдаете эти правила, не удивляйтесь потом не найдя свою тему/сообщение. ;)


Полезные советы:

При написании сообщения постарайтесь дать теме максимально понятное название. В теме максимально подробно опишите проблему. Если применимо укажите: название базы данных и версии (MySQL 4.1, MS SQL Server 2000 и т.п.); используемых язык программирования; способа доступа (ADO, BDE и т.д.); сообщения об ошибках.

Для вставки кода используйте теги [code=sql] [/code].

Литературу по базам данных можно поискать здесь.

Действия модераторов можно обсудить здесь.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, LSD, Zloxa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | СУБД, общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0470 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.