I just posted a reply to this here: http://themicrobusinessexperiment.blogspot.com/2007/03/how-to-build-fully-functioning-website.html#comment-3917035291562903078
And for ease of use, here's my post:
I can understand this as purely a programming challenge but that's it.
You're justification for using it in an actual system is based upon no changes to the requirements at all. Ever.
It's not hard to imagine what other requirements may be required later and as soon as that happens you're stuck. Can you easily get the maximum score per user between two dates? Can you find the average score for users who's name starts with a 'W' and who have played 5 games between midnight and 3 am?
All reasonable queries that are easily answered using SQL but that would require tight coulping and nastiness in this solution.
Not to mention the lack of type safty, referential integrity checks, FK constraints, transactions, load balancing, query caching, index tuning over time, backup systems, running on redundant servers, triggers etc.
There really is no justification for using this in an actual system. Software should be SOFT and using this makes the software rigid, highly coupled, inflexible and too much work for it's own good.
I'm sure you brushed up on some programming skills and learnt a few new things about the languages you used along the way. And that's great for you. But that's it.