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

Хочу организовать возможность опрашивания посетителей сайта. Опросов планируется проводить много. Каким образом лучше организовать структуру таблиц в базе данных (СУБД MySQL) для большого числа опросов?
Не будет ли возникать проблемы с производительностью, если структура будет следующей?
В БД 2 таблицы: первая таблица ( table 1 ) с вопросами, а вторая ( table 2 ) - с вариантами ответов.
table 1 имеет следующие поля:
question_id - id опроса
question - вопрос, задаваемый пользователям
num - количество опрошенных
table 2 :
question_id - id опроса
answer_id - id ответа
description - описание ответа
num - количество пользователей, проголосовавших за этот ответ
...
Рейтинг: 0 / 0
Структура БД при организации опросника на сайте
    #37769222
Злой Бобр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
psdpsd,

Проблем небудет. Вот только по уму нужно еще табличку из которой можно узнать какой пользователь как проголосовал. Это для того чтобы второй раз этот пользователь не мог голосовать, ну или один и тот же опрос не предлагался несколько раз - зависит от того что вы лепите.
...
Рейтинг: 0 / 0
Структура БД при организации опросника на сайте
    #37769699
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Структура не продумана совершенно. Сделать что-то путное на этих двух таблицах невозможно.
...
Рейтинг: 0 / 0
Структура БД при организации опросника на сайте
    #37770360
Максим Н
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
psdpsd,
Почему бы вам не посмотреть как устроена структура уже готовых опросников. Может вариант заюзать какой нибудь готовый плагин для опросов?
...
Рейтинг: 0 / 0
Структура БД при организации опросника на сайте
    #37770475
psdpsd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Злой Бобр,

Злой БобрВот только по уму нужно еще табличку из которой можно узнать какой пользователь как проголосовал.
Пожалуй можно. Я привел лишь базис. Спасибо.

Программист-Любитель,

Вы можете посоветовать мне как усовершенствовать данную структуру, или подсказать другую? Спасибо.
...
Рейтинг: 0 / 0
Структура БД при организации опросника на сайте
    #37770580
Фотография @k@DElpher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1) в опросе всегда один вопрос?
2) в опросе всегда один ответ из фиксированного числа вариантов? (несколько вариантов checkbox бывают?)
3) А может вам нужно поле "введите свой ответ"?
4) Собственно, хранить ссылки на пользователей или их хосты?
Вариант для:
Один опрос-один вопрос. Один обязательный ответ. Учитываю пользователей.
Всё остальное можно получить через View или запросы(количество опрошенных, количество ответов)
...
Рейтинг: 0 / 0
Структура БД при организации опросника на сайте
    #37770806
psdpsd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
@k@DElpher,

1) В опросе всегда один вопрос
2) Варианты с checkbox возможны
3) Поле для ввода собственного ответа отсутствует
4) Опрос доступен как зарегистрированным так и незарегистрированным пользователям. Следовательно, если пользователь авторизовался в системе, то информация о его голосовании должна записываться в БД.

Вы предлагаете использовать InnoDB? Для меня в решении данной задачи главное - высокая производительность при меньших затратах. Как я уже писал, "Опросов планируется проводить много".
...
Рейтинг: 0 / 0
Структура БД при организации опросника на сайте
    #37771581
Фотография @k@DElpher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
psdpsd@k@DElpher,

Вы предлагаете использовать InnoDB? Для меня в решении данной задачи главное - высокая производительность при меньших затратах. Как я уже писал, "Опросов планируется проводить много".
Кто предлагает? Я только ER схемку привел. Или комментарий удалили чей-то?
...
Рейтинг: 0 / 0
Структура БД при организации опросника на сайте
    #37772639
psdpsd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
@k@DElpher,

В MyISAM невозможно использовать FK, вот я и предположил, что Вы предлагаете использовать InnoDB.
...
Рейтинг: 0 / 0
Структура БД при организации опросника на сайте
    #37772654
Фотография @k@DElpher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
psdpsd,
а, я не в курсе особенностей MySQL, во всяком случае это всего лишь "целостность", и фактически можно FK констрейнт не делать.
...
Рейтинг: 0 / 0
Структура БД при организации опросника на сайте
    #37772727
psdpsd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
@k@DElpher,

Спасибо.
...
Рейтинг: 0 / 0
Структура БД при организации опросника на сайте
    #37772764
psdpsd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
@k@DElpher,

Хотя, у меня еще один вопрос имеется. В Вашей структуре в таблице "Варианты ответов" полю id_answers присвоен PK. Это означает, что каждое значение этого поля (int) уникально, так? К примеру если у нас имеется 3 опроса, тогда таблица будет следующей:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
id_answers | Ответ | id_poll 
         1 | ...   | 1
         2 | ...   | 1
         3 | ...   | 1
         4 | ...   | 1
         5 | ...   | 2
         6 | ...   | 2
         7 | ...   | 2
         8 | ...   | 2
         9 | ...   | 3
        10 | ...   | 3
        11 | ...   | 3


Таким образом, чем больше опросов мы имеем, тем больше памяти в БД (id_answers) будет расходоваться на запись новых ответов.
Может быть лучше не делать значения этого поля уникальными, а для каждого нового опроса id_answers начинать с 1?

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
id_answers | Ответ | id_poll 
         1 | ...   | 1
         2 | ...   | 1
         3 | ...   | 1
         4 | ...   | 1
         1 | ...   | 2
         2 | ...   | 2
         3 | ...   | 2
         4 | ...   | 2
         1 | ...   | 3
         2 | ...   | 3
         3 | ...   | 3
...
Рейтинг: 0 / 0
Структура БД при организации опросника на сайте
    #37772940
Фотография @k@DElpher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тогда первичный ключ будет два поля IdPoll и IdAnswers и, если усложнять появяться сложные запросы. А в первом случае для idAnswers можно сделать автоинкремент и не следить за нумерацией (если он там поддерживается).
А вообще уточню, что предложенный мной вариант не пригоден для ситуаций, когда нужно несколько ответов.
---
у вас миллионы опросов будут? Зачем экономить не мелочах.
А по сути:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
id_answers | Ответ | id_poll 
         1 | ...   | 1
         2 | ...   | 1
         3 | ...   | 1
         4 | ...   | 1
         5 | ...   | 2
         6 | ...   | 2
         7 | ...   | 2
         8 | ...   | 2
         9 | ...   | 3
        10 | ...   | 3
        11 | ...   | 3


Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
id_answers | Ответ | id_poll 
         1 | ...   | 1
         2 | ...   | 1
         3 | ...   | 1
         4 | ...   | 1
         1 | ...   | 2
         2 | ...   | 2
         3 | ...   | 2
         4 | ...   | 2
         1 | ...   | 3
         2 | ...   | 3
         3 | ...   | 3


Занимают одно и то же количество памяти:). В обоих случаях Integer и количество записей одинаково. Если только вы для этого поля не хотите использовать Byte.
...
Рейтинг: 0 / 0
Структура БД при организации опросника на сайте
    #37774469
bespe4naya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет.сколько будет стоить разработка интерфейса на Визуал студио, на языке С#, для базы данных созданной в Акцессе?со сроком где то 2 месяца.
...
Рейтинг: 0 / 0
Структура БД при организации опросника на сайте
    #37776489
Злой Бобр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bespe4naya,

Если срок посчитан точно то сами перемножте почасовку на количество часов и дней. У каждого она разная.
...
Рейтинг: 0 / 0
Структура БД при организации опросника на сайте
    #37779515
psdpsd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Прошу ответить еще на один вопрос.
Из всего выше сказанного я сделал пока две таблицы:
polls
Код: sql
1.
2.
3.
4.
5.
poll_id | question | ...
    1   |    ...   | ...
    2   |    ...   | ...
    3   |    ...   | ...
   ...  |    ...   | ...


и answers
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
answer_id | poll_id | answer | ...
     1    |    1    |   ...  | ...
     2    |    1    |   ...  | ...
     3    |    1    |   ...  | ...
     4    |    2    |   ...  | ...
     5    |    2    |   ...  | ...
     6    |    3    |   ...  | ...
    ...   |   ...   |   ...  | ...


Как видно, таблицы объединяет поле poll_id .
Если выполнить запрос:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
SELECT
  p.poll_id,
  p.question,
  a.answer_id,
  a.answer
  FROM
  polls AS p
  INNER JOIN
  answers AS a
  USING(poll_id)
  ORDER BY
  p.poll_id
  DESC
  LIMIT 10


то получим следующий вывод
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
poll_id | question | answer_id | answer
    1   |    ...   |     1     |  ...
    1   |    ...   |     2     |  ...
    1   |    ...   |     3     |  ...
    2   |    ...   |     4     |  ...
    2   |    ...   |     5     |  ...
    3   |    ...   |     6     |  ...
   ...  |    ...   |     7     |  ...
   ...  |    ...   |     8     |  ...
   ...  |    ...   |     9     |  ...
   ...  |    ...   |    10     |  ...


В данном примере, так как в запросе имеется LIMIT 10 , выводятся 10 строк. Собственно вопрос. Каким запросом можно залимитировать количество опросов при выводе? То есть, чтобы выводилось n-ое количество опросов.
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Структура БД при организации опросника на сайте
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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