So I'm creating an app that with users who can earn "points" in many different ways. Some of these point accruals occur because of their profile, actions they've taken, etc. (i.e. spread across multiple tables).
I don't want to manually add points in a field when certain actions occur because I want to ensure number consistency. I would like to have some sort of calculated field that keeps their points updated in a field for easy querying. This is because I don't want to run an insanely complex select/view every time I want to list a set of users and their points (like a top 100 list).
Is there a way to compute a field in the users table using a complex select statement over multiple other tables? Is it efficient? Should I just ditch the computed field and go with a well written procedure?