24.05.2019, 05:15 [+3 UTC]
в нашей команде: 3 639 чел. | участники онлайн: 2 (рекорд: 21)

:: РЕГИСТРАЦИЯ

задать вопрос

все разделы

правила

новости

участники

доска почёта

форум

блоги

поиск

статистика

наш журнал

наши встречи

наша галерея

отзывы о нас

поддержка

руководство

Версия системы:
7.75 (18.05.2019)
JS-v.1.33 | CSS-v.3.35

Общие новости:
28.04.2019, 09:13

Форум:
16.05.2019, 21:07

Последний вопрос:
23.05.2019, 22:12
Всего: 149684

Последний ответ:
23.05.2019, 21:11
Всего: 258514

Последняя рассылка:
24.05.2019, 04:15

Писем в очереди:
0

Мы в соцсетях:

Наша кнопка:

RFpro.ru - здесь вам помогут!

Отзывы о нас:
27.03.2012, 03:08 »
Даровко Антон Владимирович
Вы очень грамотно решили задачи, но Вы не нарисовали рисунков и схем как я просил. [вопрос № 185686, ответ № 270330]

РАЗДЕЛ • PHP / Perl / Python

Создание программ на языках PHP, Perl и Python.

[администратор рассылки: Коцюрбенко Алексей Владимирович (Модератор)]

Лучшие эксперты в этом разделе

Коцюрбенко Алексей Владимирович
Статус: Модератор
Рейтинг: 617
SAW
Статус: 7-й класс
Рейтинг: 49
Хватов Сергей
Статус: Академик
Рейтинг: 42

Перейти к консультации №:
 

Консультация онлайн # 69822
Раздел: • PHP / Perl / Python
Автор вопроса: PetrKi.
Отправлена: 07.01.2007, 02:16
Поступило ответов: 1

Вопрос таков:

нужно сделать голосование как на данном сайте. при этом формы с голосованием будут рандомно подключаться в шаблон(с этим всё понятно).
Кто делал голосование, скажите как лучше сделать: с помощью файлов или писать в БД.
Если писать в базу данных, то напишите кратко структуру таблицы в БД для голосования.

Мой вариант:

id | nazvanie_golosovaniya | golos_za_punkt_1 | golos_za_punkt_2 |golos_za_punkt_3 | golos_za_punkt_4 | golos_za_punkt_5

Вот так. Сложность заключается в том, что не удобно использовать эту таблицу для других голосований. Ещё одна сложность - учёт проголосовавших IP-адресов - не понятно куда их записывать, отводить для них полу в строке? и писать их через запятую?, а потом резать эксплойдом эту строку?. Совсем не удобно. Раньше я делал с помощью 2-х файлов на одно голосование. Первый в столбец содержит id варианта ответа, второй в столбец содержит IP голосовавших.

Как реализовать голосование по средствам БД? и чтобы это было удобно. Напишите структуру таблицы, которую вы считаете оптиальной.

Состояние: Консультация закрыта

Ответ # 135111 от Цепковский Антон Сергеевич

Здравствуйте, PetrKi.!

Лучше использовать БД и не одну таблицу, а 2-е, т.к. на лицо отношение один (1 голосование) ко многим (много вариантов ответа), что бы не было привязки к кол-ву вариантов ответа (т.е. что бы было возможно сделать голосование и с 2-мя вариантами ответа и со 100).

таблица Голосования:
id int - autoincrement, primary key
title varchar(100) - название голосования

таблица Варианты ответа:
id int - autoincrement, primary key
decr text - описание пункта варианта ответа
id_gol int - id голосования, к которому относится вариант ответа.

А вот и 3-я таблица для хранения ответов, я бы сделал так (без избыточности данных):
id int - autoincrement, primary key
id_var int - id варианта ответа
ip varchar(15) - ip-адрес - при голосовании нужно проверять, что бы не шалили.

или в 3-й таблице, для упрощения выборки данных предлагаю ещё хранить id_gol - ссылку именно к голосованию, однако это против теории релляционных баз данных, у которых не должно быть избыточности данных ( smile - но иногда можно).

С уважением,
Антон Цепковский


Консультировал: Цепковский Антон Сергеевич
Дата отправки: 07.01.2007, 02:40

Рейтинг ответа:

0

[подробно]

Сообщение
модераторам

Отправлять сообщения
модераторам могут
только участники портала.
ВОЙТИ НА ПОРТАЛ »
регистрация »

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

Яндекс Rambler's Top100

главная страница | поддержка | задать вопрос

Время генерирования страницы: 0.13494 сек.

© 2001-2019, Портал RFPRO.RU, Россия
Калашников О.А.  |  Гладенюк А.Г.
Версия системы: 7.75 от 18.05.2019
Версия JS: 1.33 | Версия CSS: 3.35