Суть в чем, есть темы для опроса, соответственно у каждой темы существует набор
вопросов, пользователь отвечает и его голос учитывается, НО требуется чтобы результаты опроса можно было просмотреть в нескольких разрезах:
1) общий - обычный вывод результатов по вопросам опроса.
2) в разрезе полов(муж, жен);
3) в разрезе ВУЗОВ;
4) в разрезе ВУЗОВ и полов (муж, жен).
Пока на ум пришла лишь вот такая структура БД
Таблица1: ТЕМЫ(ВОПРОС)
Ид. темы|Название|Дата создания|Количество голосов|Количество мнений
Таблица 2: ВАРИАНТЫ ОТВЕТОВ
Ид. варианта|Ид. темы|Содержание ответа|Кол-во голосов
Таблица 3: РЕГИСТР(информация во всех разрезах)
Ид. темы|Ид. Ответа|Пол|Ид. ВУЗ|кол-во голосов
В случае если требуется получить общие результаты(участвует только таблица 1 и 2) получается все красиво и быстро.
ВОПРОС касается третьей таблицы, в случает выборки из нее получается довольно много требуется обработать строк. Или это нормально? Ведь БД для того и предназначена.
Например есть тема в ней(по максимуму):
10 ВАРИАНТОВ ОТВЕТОВ
10 ВУЗОВ
2 ПОЛА
Получается по каждой теме может быть максимально 10*10*2 = 200 записей в третьей таблице. А всего по таблице(если 100 тем) уже 20000 записей.
Спустя 2 дня, 29 минут, 50 секунд (24.12.2010 - 14:39) SlavaFr написал(а):
А у тебя таблицы user нет?
если да, то можно все совсем по другому зделать.
если да, то можно все совсем по другому зделать.
Спустя 1 день, 22 часа, 10 минут, 52 секунды (26.12.2010 - 12:50) T1grOK написал(а):
Есть. В общем, подумал, потестировал скорость выборки из БД при большом количестве записей, результаты оказались удовлетворительными, решил оставить структуру БД указанную выше.
_____________
Mysql, Postgresql, Redis, Memcached, Unit Testing, CI, Kohana, Yii, Phalcon, Zend Framework, Joomla, Open Cart, Ymaps, VK Api