Существуют ли какие-либо руководящие принципы или практические правила для определения, когда хранить совокупные значения и когда рассчитывать их на лету?
Например, предположим, у меня есть виджеты, которые пользователи могут оценивать (см. Схему ниже). Каждый раз, когда я отображаю виджет, я могу рассчитать средний рейтинг пользователя по Ratings
таблице. В качестве альтернативы я мог бы хранить средний рейтинг на Widget
столе. Это избавило бы меня от необходимости рассчитывать рейтинг каждый раз, когда я отображал виджет, но тогда мне пришлось бы пересчитывать средний рейтинг каждый раз, когда пользователь оценивал виджет.
Ratings Widgets
--------- -------
widget_id widget_id
user_id name
rating avg_rating <--- The column in question