У меня есть две группы объекта. Рестораны и Пользователи. Рестораны могут быть оценены (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?
Ну, если вы где-то храните среднее значение, оно будет точным только на момент последнего вычисления. (Например, у вас есть 5 отзывов; затем вы храните средние значения где-то. Вы получаете еще 5 новых отзывов, и тогда сохраненное среднее значение оказывается неверным).
Я считаю, что подобная логика идеально подходит для среднего уровня. Вычисление среднего значения не должно быть очень ресурсоемким и не должно влиять на производительность.
Если вы действительно хотите хранить их в базе данных, я бы, вероятно, хранил их в их собственной таблице, и обновлял эти значения с помощью триггеров. Однако это может быть еще более ресурсоемким, чем вычисление на среднем уровне.