In my web application, my users have many events. One such event is "user updated facebook status." A user could have hundreds of that type of event, and there are 10 types of events. I need to display event counts and other user statistics based on events in a very scalable manner. This is because each user will be able to see his or her statistics. We obviously cannot afford to run each calculation every time a user hits the website so caching these statistics is certainly the way to go.
Does it make sense to create a separate table for "statistics" which would have a user id and a column for each statistic we are caching? The table is essentially acting so I was wondering if there was a better or different way to do it.