I am hoping to address this in a round-about way in the future. For now, due to my previously mentioned reasons, it is not possible.
Your solutions may sound simple to you, but aren't actually feasible due to over-simplication (suggestion 1) or incorrect approach (suggestion 2).
You need an index per-user per-beatmap ordered by score. As this information is obviously not stored in a single table, it means duplicating a lot of data, which all needs to be updated on a regular basis. Making this an efficient lookup is one of the most challenging query types for a database. It of course can be done, but requires a lot of optimisation, consideration and storage space.mmstick wrote:
I don't see how this would be intensive to implement, plenty of other games do this. One way would be to store all scores on a server, only keeping the highest score a user makes and the client simply grabs the data from the website database in real-time (similar to embedding a frame of a webpage). Another way would be for the clients to individually ask other clients for their highest local scores to sync with and promptly attempt to sync with friends clients when a new high score is obtained.
Your solutions may sound simple to you, but aren't actually feasible due to over-simplication (suggestion 1) or incorrect approach (suggestion 2).