Структура базы данных системы оценки

У меня есть две группы объекта. Рестораны и Пользователи. Рестораны могут быть оценены (1-5) пользователями. И оценка fromeach пользователь должна быть восстановима.

Resturant (идентификатор, имя....., total_number_of_votes, total_voting_points) Пользователь (идентификатор, имя......)

Оценивая (идентификатор, restaurant_id, user_id, rating_value)

Я должен сохранить в среднем значение так, чтобы оно не было вычислено каждый раз? какая таблица лучшее место должно сохранить avg_rating, total_no_of_votes, total_voting_points?

1
задан Harsha M V 1 June 2010 в 05:51
поделиться

1 ответ

Ну, если вы где-то храните среднее значение, оно будет точным только на момент последнего вычисления. (Например, у вас есть 5 отзывов; затем вы храните средние значения где-то. Вы получаете еще 5 новых отзывов, и тогда сохраненное среднее значение оказывается неверным).

Я считаю, что подобная логика идеально подходит для среднего уровня. Вычисление среднего значения не должно быть очень ресурсоемким и не должно влиять на производительность.

Если вы действительно хотите хранить их в базе данных, я бы, вероятно, хранил их в их собственной таблице, и обновлял эти значения с помощью триггеров. Однако это может быть еще более ресурсоемким, чем вычисление на среднем уровне.

2
ответ дан 3 September 2019 в 00:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: