Czy istnieją jakieś praktyczne wskazówki lub reguły określające, kiedy przechowywać wartości zagregowane, a kiedy obliczać je w locie?
Załóżmy na przykład, że mam widżety, które użytkownicy mogą oceniać (patrz schemat poniżej). Za każdym razem, gdy wyświetlam widżet, mogłem obliczyć średnią ocenę użytkowników z Ratings
tabeli. Alternatywnie mógłbym zapisać średnią ocenę na Widget
stole. Pozwoliłoby mi to uniknąć konieczności obliczania oceny za każdym razem, gdy wyświetlam widżet, ale musiałbym ponownie obliczać średnią ocenę za każdym razem, gdy użytkownik ocenia widżet.
Ratings Widgets
--------- -------
widget_id widget_id
user_id name
rating avg_rating <--- The column in question