Консультация № 69826
07.01.2007, 03:46
0.00 руб.
0 1 1
Правильно ли я понял.
3 таблицы:
1)ГОЛОСОВАНИЯ
id - id голосования.
name - имя голсования.
2)ВАРИАНТЫ
id - id варианта.
id_gol -id голосования.
variant_otveta - вар. ответа.
3)ОТВЕТЫ
id - id ответа.
id_varianta - id варианта ответа.
ip - ip-голосовавшего.
Всё удобно... никакого избытка данных. Только у вариантов ответа получаются неудобные id. Варианты все в куче. При создании очередной формы для голосования надо уточнять id номера ответов, чтобы их потом передавать в скрипт голосования, для занесения очередного ответа в базу данных. Это можно обойти или с этим придётся смириться.

Приложение:
69822

Обсуждение

Неизвестный
07.01.2007, 13:44
общий
это ответ
Здравствуйте, PetrKi.!

Я написал примеры запросов к БД в Мини форуме вопроса 69822.

В принципе SQL достаточно мощный и позволяет выбирать данные со сложными условиями, с вложенными выборками и т.п.

Вообще правильно будет так как я написал. Про порядок id в каждой таблице можно не беспокоится ведь файтически это универсальные номера, и будут идентифицировать только свою запись, что нам и нужно. В таблице Ответы есть поле № варианта ответа, для связывания ответа-варианта ответа, в таблице Варианты ответа есть поле № голосования для связки таблиц Варианты ответа - Голосования, так что используя SQL можно осуществить выборку сразу из 3-х или 2-х таблиц для получения нужного нам результата.

Единственное что бы я ещё добавил - это порядок отображения вариантов ответа при выводе голосования, т.е. что выше что ниже.
Для этого я бы ввел дополнительное поле типа integer в таблицу "Варианты ответа" и скрипт для задания порядка.

т.е. у Вас получается 3 таблицы и скрипты для Создания голосования, Добавления вариантов ответа для конкретного голосования, задания порядка отображения - это админ интерфейс и для пользователя это Вывод результата конкретного голосования, Голосование за определенный Вариант ответа и возможно Показать перечень голосований.

Вроде больше ничего на ум не приходит.
Форма ответа