powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Структура базы данных соц. опросов
15 сообщений из 15, страница 1 из 1
Структура базы данных соц. опросов
    #38029489
alexandr.novitskiy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток!
Просидев несколько дней в интернетах и не найдя ничего похожего на то, что я ищу, решил обратиться в мекку баз данных :)

Задачу поставили следующую:
Создать многофункциональный web-портал, одной из фишек которого будут соц опросы. Они могут быть разной степени гибкости и размерности.

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

Как я себе представлял это:

1) Таблица polls , где содержатся все анкеты опросов и информация, которая их касается. Ну тут все понятно.
2) Таблица polls_questions , где хранятся абсолютно все вопросы. Родитель определяется полем id_polls.
3) Таблица polls_answers . Тут все сложнее. Таблица, как и предыдущие, вроде как, небольшая вширь, но очень стремительно растет в высоту. Тут хранятся все данных касательно ответов, т.е. поле id_polls_questions определяет родителя варианта.
4) Таблица polls_results . Тут у меня вообще все не густо. Задаюсь вопросами всех типов. Начиная от того, каким образом организовать таблицу. Вообще правильно ли делать так, что 1 строка в таблице = 1 человек прошедший опрос. В каком формате будут записываться данные ? Сделать таблицу динамической в плане ширины невозможно, но и статическую ширину задавать некорректно ( в случае, если под каждый вариант ответа ставить 1 столбец ). Либо создать для тела опроса большое поле, куда в кодированном или маскированном формате будут вноситься ответы и потом, при надобности, разбивать эту выборку и смотреть.
Но тогда возникает следующий вопрос: будет ли такой способ удобен и быстр при работе с результатами опроса? Построение статистики по определенному опросу / графиков и тд.

Собственно такая вот проблема. Простите за стену, возможно, не совсем понятного текста. Пытался изъясняться по-максимуму )

Спасибо всем за внимание и за помощь!
...
Рейтинг: 0 / 0
Структура базы данных соц. опросов
    #38029531
polls_answers
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alexandr.novitskiy,

polls_answers - варианты ответов, напротив каждого набирается количество варианта (если, конечно, данные каждого респондента не учитываются)
...
Рейтинг: 0 / 0
Структура базы данных соц. опросов
    #38029533
polls_answers
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
polls_answers,

соответственно - она Многие по отношению к Вопросу, а 4-я - не нужна
...
Рейтинг: 0 / 0
Структура базы данных соц. опросов
    #38029538
alexandr.novitskiy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
polls_answerspolls_answers,

соответственно - она Многие по отношению к Вопросу, а 4-я - не нужна

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

Спасибо большое за подсказку, буду думать )
Не откажусь еще от каких-либо вариантов. Может кто сталкивался с подобной проблемой и нашел рациональные решения.

Система обещает быть нагруженной, соответственно и база будет довольно-таки весомой. Не хочется заставлять людей ждать даже при самых интересных выборках.
...
Рейтинг: 0 / 0
Структура базы данных соц. опросов
    #38029800
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexandr.novitskiyПредлагаете в 3й таблице poll_answers добавить еще одну колонку, которая просто будет хранить в себе int число, которое выводит кол-во проголосовавших за данный вариант? Если так, то спасибо. Вполне прозрачное решение, я чет слишком закрутился и не подумал о нем даже. Хотя надо будет уточнить подробности у заказчика по этому поводу..

Имхо это плохой вариант - если опроc состоит из нескольких вопросов, Вы никогда не сможете посчитать, сколько из выбравших
вариант Б 3-го вопроса выбрали и вариант В 6-го.

По Вашему варианту отношение polls и polls_questions я бы делал "многие-ко-многим" - вопрос может входить в несколько опросов.
+ я бы poll_results разделили бы на 2 таблицы. polls_results - идетифицирцует участника опроса ( с полями, зависящими от того, как предполагается их идентифицировать) + polls_answer_results, которая практически является связью
polls_results и polls_answers.
...
Рейтинг: 0 / 0
Структура базы данных соц. опросов
    #38029845
alexandr.novitskiy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кот Матроскинalexandr.novitskiyПредлагаете в 3й таблице poll_answers добавить еще одну колонку, которая просто будет хранить в себе int число, которое выводит кол-во проголосовавших за данный вариант? Если так, то спасибо. Вполне прозрачное решение, я чет слишком закрутился и не подумал о нем даже. Хотя надо будет уточнить подробности у заказчика по этому поводу..

Имхо это плохой вариант - если опроc состоит из нескольких вопросов, Вы никогда не сможете посчитать, сколько из выбравших
вариант Б 3-го вопроса выбрали и вариант В 6-го.

По Вашему варианту отношение polls и polls_questions я бы делал "многие-ко-многим" - вопрос может входить в несколько опросов.
+ я бы poll_results разделили бы на 2 таблицы. polls_results - идетифицирцует участника опроса ( с полями, зависящими от того, как предполагается их идентифицировать) + polls_answer_results, которая практически является связью
polls_results и polls_answers.

Спасибо за ответ!
По поводу "многие-ко-многим" - заведомо предполагаем, что все опросы и вопросы в системе уникальные, т.к. они создаются пользователями, а не системой, соответственно невозможно никак к новому опросу прикрепить уже из созданной анкеты вопрос, даже если они на 100% идентичны по содержанию.. это будет каша. Если я Вас правильно понял.

А если такой момент, что в polls_results требуется только id другого участника этой же системы. Зная id мы сможем взять всю нужную информацию. И тогда можно обойтись без этой таблицы, а достаточно будет опять же только одной polls_answers_results где будет id вопроса, ответ и id пользователя ?
...
Рейтинг: 0 / 0
Структура базы данных соц. опросов
    #38029862
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexandr.novitskiy Доброго времени суток!
Просидев несколько дней в интернетах и не найдя ничего похожего на то, что я ищу, решил обратиться в мекку баз данных :)

Задачу поставили следующую:
Создать многофункциональный web-портал, одной из фишек которого будут соц опросы.
Опросы кого? Зарегистрированных пользователей?
Вам не поставили задачу, а Вы говорите поставили.
alexandr.novitskiyОни могут быть разной степени гибкости и размерности.
Заказчик дал ам определения "гибкости" и "размерности"?
alexandr.novitskiyПроблема в том, что я не могу сложить ни в голове ни на бумаге благоприятную для работы структуру базы данных, где вся информация касательно вопросов будет храниться.
Разумеется, ведь задача не поставлена.
alexandr.novitskiyКак я себе представлял это:

1) Таблица polls , где содержатся все анкеты опросов и информация, которая их касается. Ну тут все понятно.
Тут понятно ничуть не больше, чем во всех остальных таблицах.
alexandr.novitskiy2) Таблица polls_questions , где хранятся абсолютно все вопросы. Родитель определяется полем id_polls.
То есть, вопрос "Пол" будет храниться несколько раз? Или речь идет о зарегитрированных пользователях, пол которых содержится в анкете пользователя?
alexandr.novitskiy3) Таблица polls_answers . Тут все сложнее. Таблица, как и предыдущие, вроде как, небольшая вширь, но очень стремительно растет в высоту. Тут хранятся все данных касательно ответов, т.е. поле id_polls_questions определяет родителя варианта.
Об ответах вообще рано говорить.
alexandr.novitskiy4) Таблица polls_results . Тут у меня вообще все не густо. Задаюсь вопросами всех типов. Начиная от того, каким образом организовать таблицу. Вообще правильно ли делать так, что 1 строка в таблице = 1 человек прошедший опрос. В каком формате будут записываться данные ? Сделать таблицу динамической в плане ширины невозможно, но и статическую ширину задавать некорректно ( в случае, если под каждый вариант ответа ставить 1 столбец ). Либо создать для тела опроса большое поле, куда в кодированном или маскированном формате будут вноситься ответы и потом, при надобности, разбивать эту выборку и смотреть.
Но тогда возникает следующий вопрос: будет ли такой способ удобен и быстр при работе с результатами опроса? Построение статистики по определенному опросу / графиков и тд.

Собственно такая вот проблема. Простите за стену, возможно, не совсем понятного текста. Пытался изъясняться по-максимуму )

Спасибо всем за внимание и за помощь!
Займитесь постановкой задачи.
...
Рейтинг: 0 / 0
Структура базы данных соц. опросов
    #38029866
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexandr.novitskiy,

Ну сами смотрите, нужны ли Вам какие-то другие атрибуты, кроме ID участника. Может, время прохождения опроса, может, источник "откуда пользователь пришел проходить опрос"... Я бы сделал эту таблицу на всякий случай. Если точно никакие дополнительные атрибуты не понадобятся - ну да, наверно можно не делать.
Постройте сначала логическую модель - какие данные нужны, а какие нет, потом уже легче будет разобраться с таблицами.
...
Рейтинг: 0 / 0
Структура базы данных соц. опросов
    #38029964
alexandr.novitskiy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Бредятина,
Опросы будут содержать сугубо тематические вопросы. Никакой воды про пол, возраст, имяфамилию и тд.
В Вашем сообщении ничего, кроме критики не заметил. Хотя задачу описал, вроде бы, вполне понятно..

таблица polls - храните в себе описательную инфо об анкете.. фото / видео / текстовые поля описания самого опроса. Что же тут непонятного ?
Задача, по сути, вполне бытовая, но с некоторой начинкой.
Вопрос только в том, как лучше хранить данную информацию, только и всего.
Есть сами опросы (polls), вопросы к ним (polls_questions), ответы на вопросы ( polls_answers ) и таблица результатов, которая предположительно может работать как я описал в предыдущем посте.
Если что именно непонятно - дайте мне знать, попробую подробнее описать проблему.

Кот Матроскинalexandr.novitskiy,

Ну сами смотрите, нужны ли Вам какие-то другие атрибуты, кроме ID участника. Может, время прохождения опроса, может, источник "откуда пользователь пришел проходить опрос"... Я бы сделал эту таблицу на всякий случай. Если точно никакие дополнительные атрибуты не понадобятся - ну да, наверно можно не делать.
Постройте сначала логическую модель - какие данные нужны, а какие нет, потом уже легче будет разобраться с таблицами.

Спасибо за дельное замечание. При написании ТЗ было достаточно только той инфо, которая есть о пользователе уже в системе. Опросы будут проходиться только внутри сайта и нигде больше. Информация при регистрации указывается вполне исчерпывающая и подтверждается верификацией по скану паспорта. С этим проблем возникнуть не должно, следовательно и для окончательных построений результатов и графиков вполне хватит id пользователей, которые хранятся в ответах, из них уже можно будет создавать нужную статистику.
...
Рейтинг: 0 / 0
Структура базы данных соц. опросов
    #38030028
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexandr.novitskiyБредятина,
Опросы будут содержать сугубо тематические вопросы. Никакой воды про пол, возраст, имя фамилию и тд.
Значит пока не разобрались.
alexandr.novitskiyВ Вашем сообщении ничего, кроме критики не заметил. Хотя задачу описал, вроде бы, вполне понятно..
Можете просто проигнорировать, и делать свои таблицы:) Задачу Вы только сейчас начали описывать. Но не получается пока. Мешают термины "сугубо тематические" и "вода".
alexandr.novitskiyтаблица polls - храните в себе описательную инфо об анкете.. фото / видео / текстовые поля описания самого опроса. Что же тут непонятного ?
Мне - ничего не понятно. Но главное ведь, чтобы Вам было понятно.
alexandr.novitskiyЗадача, по сути, вполне бытовая, но с некоторой начинкой.
Не знаю в какой класс может перейти "вполне бытовая задача" при наличии "некоторой начинки". Может быть, в "сложную производственную".
alexandr.novitskiyВопрос только в том, как лучше хранить данную информацию, только и всего.
"Данную" - это Вы хорошо сказали:) Да, я сразу не сообразил, что вопрос очень простой.
alexandr.novitskiyЕсть сами опросы (polls), вопросы к ним (polls_questions), ответы на вопросы ( polls_answers ) и таблица результатов, которая предположительно может работать как я описал в предыдущем посте.
Если что именно непонятно - дайте мне знать, попробую подробнее описать проблему.
Мне все понятно.
...
Рейтинг: 0 / 0
Структура базы данных соц. опросов
    #38030067
alexandr.novitskiy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Бредятинаalexandr.novitskiyБредятина,
Опросы будут содержать сугубо тематические вопросы. Никакой воды про пол, возраст, имя фамилию и тд.
Значит пока не разобрались.
alexandr.novitskiyВ Вашем сообщении ничего, кроме критики не заметил. Хотя задачу описал, вроде бы, вполне понятно..
Можете просто проигнорировать, и делать свои таблицы:) Задачу Вы только сейчас начали описывать. Но не получается пока. Мешают термины "сугубо тематические" и "вода".
alexandr.novitskiyтаблица polls - храните в себе описательную инфо об анкете.. фото / видео / текстовые поля описания самого опроса. Что же тут непонятного ?
Мне - ничего не понятно. Но главное ведь, чтобы Вам было понятно.
alexandr.novitskiyЗадача, по сути, вполне бытовая, но с некоторой начинкой.
Не знаю в какой класс может перейти "вполне бытовая задача" при наличии "некоторой начинки". Может быть, в "сложную производственную".
alexandr.novitskiyВопрос только в том, как лучше хранить данную информацию, только и всего.
"Данную" - это Вы хорошо сказали:) Да, я сразу не сообразил, что вопрос очень простой.
alexandr.novitskiyЕсть сами опросы (polls), вопросы к ним (polls_questions), ответы на вопросы ( polls_answers ) и таблица результатов, которая предположительно может работать как я описал в предыдущем посте.
Если что именно непонятно - дайте мне знать, попробую подробнее описать проблему.
Мне все понятно.


Напоминаете капризную бабушку на скамейке во дворе, ей Богу..

У меня какое-то deja vu, я опять кроме упреков и непонятных, необоснованных замечаний не увидел.
Неужто ник напрямую связан с тематикой постов ? Будьте проще и люди к Вам потянутся..
Я не против любых комментариев.. но хотелось бы чтобы хоть как-то они касались темы или же в форме замечаний, но по делу, касательно того, где и почему я неправильно подошел к решению задачи, а не придирки к тезисам или отрывкам из текста.
...
Рейтинг: 0 / 0
Структура базы данных соц. опросов
    #38030253
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexandr.novitskiyНапоминаете капризную бабушку на скамейке во дворе, ей Богу..
Думаю, постепенно разберетесь, не переживайте:)
alexandr.novitskiyУ меня какое-то deja vu, я опять кроме упреков и непонятных, необоснованных замечаний не увидел.
Будут еще похвалы и награды:)
alexandr.novitskiyНеужто ник напрямую связан с тематикой постов ?
Абсолютно точно:)
alexandr.novitskiyБудьте проще и люди к Вам потянутся..
Неверное представление о четвертой таблице.
alexandr.novitskiyЯ не против любых комментариев.. но хотелось бы чтобы хоть как-то они касались темы или же в форме замечаний, но по делу, касательно того, где и почему я неправильно подошел к решению задачи, а не придирки к тезисам или отрывкам из текста.
Форум - это же тоже срез общества, так сказать. Никуда здесь и от таких идиотов, как я, не денешься. Просто не обращайте внимания.
...
Рейтинг: 0 / 0
Структура базы данных соц. опросов
    #38030402
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> благоприятную для работы структуру базы данных

Как бы не очень понятно, кому вдруг сейчас понадобились социологические опросы? ;)

> polls_answers

Ответы могут быть трех типов: стандартные шкалы (как правило, из 2 - 5 элементов), предопределенный набор, свободный ответ. Плюс комбинации. Обычное, в общем, решение. Насколько я понимаю, вам хочется развернуть ответы горизонтально? Можно, но imho смысла в этом немного: архив, в общем, ценности не представляет, вам понадобятся итоговые результаты. Если задача поставлена классическим образом, хранить есть смысл развернутые данные только текущего опроса. Однако, есть и другие варианты постановки задачи. Вы бы уточнили, что вы хотите получить?
...
Рейтинг: 0 / 0
Структура базы данных соц. опросов
    #38030472
alexandr.novitskiy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Бредятина,
Можно хотя бы 1-2 ссылки на Ваши полезные, наполненные содержанием, касающимся темы топика, в любой области ?

guest_20040621> благоприятную для работы структуру базы данных

Как бы не очень понятно, кому вдруг сейчас понадобились социологические опросы? ;)

> polls_answers

Ответы могут быть трех типов: стандартные шкалы (как правило, из 2 - 5 элементов), предопределенный набор, свободный ответ. Плюс комбинации. Обычное, в общем, решение. Насколько я понимаю, вам хочется развернуть ответы горизонтально? Можно, но imho смысла в этом немного: архив, в общем, ценности не представляет, вам понадобятся итоговые результаты. Если задача поставлена классическим образом, хранить есть смысл развернутые данные только текущего опроса. Однако, есть и другие варианты постановки задачи. Вы бы уточнили, что вы хотите получить?

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

В таблице вопросов будет так же колонка, где будет указан тип вопроса ( один из трех вами перечисленных ). Таким образом на комбинированные вопросы ( с чекбоксами ) ответ можно заносить так же как и обычный, но с разделителями, допустим "1|2|5" потом уже разбивать их и показывать пользователю, если надо будет. Открытые вопросы аналогично просто будут содержать развернутый текстовый ответ в том же поле.

Получить я хочу помощь в поиске правильного решения для структурирования базы, как правильно "раскидать" данные в базе, на сколько таблиц лучше разделить чтобы в будущем не возникло путаницы при сборе данных об определенном опросе. Какая цепочка сбора будет самой оптимальной и быстрой.
...
Рейтинг: 0 / 0
Структура базы данных соц. опросов
    #38030537
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexandr.novitskiyБредятина,
Можно хотя бы 1-2 ссылки на Ваши полезные, наполненные содержанием, касающимся темы топика, в любой области ?
Тогда есть неточность в третьей таблице, если так переиначили постановку задачи.
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Структура базы данных соц. опросов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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