Подскажите по структуре БД

danneo

Честный
Регистрация
13 Ноя 2007
Сообщения
1.527
Реакции
121
Типа количественный рейтинг.
У объекта нужно оценить несколько параметров, например, уровень отделки, уровень цены, дизайн и т.д. Набор параметров меняется в зависимости от категории (раздела сайта).
На странице объекта выводится его набор параметров, а также результаты голосов, типа, проголосовало 15 человек, за отделку собралось 3,5 баллов, за цену 3,7 баллов, а за дизайн 4,5 баллов (сумма баллов / кол-во оценок).
Не могу придумать, как это все "организовать".
 
Если сложно в одной таблице уместить, можешь под каждую оценку отдельные таблицы делать, которые будут относится к объекту.
 
для каждого параметра хранить общую сумму и количество голосов. можно во внешней таблице с кроссированием по айди объекта
 
Если сложно в одной таблице уместить, можешь под каждую оценку отдельные таблицы делать, которые будут относится к объекту.
Например, на один объект 4-7 параметров. Категорий объектов - 40-50. Итого 350 таблиц?

для каждого параметра хранить общую сумму и количество голосов. можно во внешней таблице с кроссированием по айди объекта
Мало чего понятно без названий полей и таблиц.
Я так понял:
tbl_parametres (id, name, id_cat)
tbl_result (id, id_param, summ, count, id_object)
Правильно?
Получается вроде не много: 2000 объектов * 7 параметров = 14000 записей.

У меня еще такая мысля:
сохранять все в поле объекта, как сериализованный массив: id_param, средний балл, кол-во голосов. А при голосовании брать эти параметры в массив и считать новые значения.

Какой вариант удобнее?

И еще вопрос. Как быть, когда появляются новые параметры? Ведь значения по ним будут пустые - 0 / 30 голосов. Или одна оценка 5, разделенная на кол-во голосов (30), не есть правильно, т.к. за этот параметр проголосовали всего 1 раз - 5/1, а не 5/30.
 
Например, на один объект 4-7 параметров. Категорий объектов - 40-50. Итого 350 таблиц?
-----
нет, итого 4-7 таблиц
_______
И еще вопрос. Как быть, когда появляются новые параметры? Ведь значения по ним будут пустые - 0 / 30 голосов. Или одна оценка 5,разделенная на кол-во голосов (30), не есть правильно, т.к. за этот параметр проголосовали всего 1 раз - 5/1, а не 5/30.

нихрена не понял, какие еще 30 голосов, в чем вообще проблема?
 
Типа количественный рейтинг.
У объекта нужно оценить несколько параметров, например, уровень отделки, уровень цены, дизайн и т.д. Набор параметров меняется в зависимости от категории (раздела сайта).
На странице объекта выводится его набор параметров, а также результаты голосов, типа, проголосовало 15 человек, за отделку собралось 3,5 баллов, за цену 3,7 баллов, а за дизайн 4,5 баллов (сумма баллов / кол-во оценок).
Не могу придумать, как это все "организовать".

Структура примерно такая
Скрытое содержимое доступно для зарегистрированных пользователей!


Запрос примерно такой, в нем можно сразу рассчитать рейтинг и т д.
Код:
SELECT p.*, fp.*, (fp.feature_value / fp.feature_count) as `rate`
FROM product p
LEFT JOIN feature_category fc ON (fc.id_category = p.id_category)
LEFT JOIN feature f ON (f.id_feature = fc.id_feature)
LEFT JOIN feature_product fp ON (fp.id_product = p.id_product AND f.id_feature = fp.id_feature)
WHERE p.id_product = NNN;
 
Последнее редактирование:
Назад
Сверху