That could be the name in a particular game or other data from the users profile. Or - limit the leaderboard by filtering on age, region or whatever.
That could be the name in a particular game or other data from the users profile. Or - limit the leaderboard by filtering on age, region or whatever.
Optimising a database for storage is really only a good idea when the additional redundant data is going to take up huge amounts of space. Storage is cheap. Making a query run faster isn't. Generally speaking you're better off optimising to reduce the number of joins and subqueries because they're the things that usually slow you down.
The way I like to approach performance issues like these is to cache or precompute de normalized data as needed, and make sure the master data is as clean and normalized as possible. You could have a materialized view, or a trigger that produced the denormalized version, or just store the data is Memcached.