Three paterns of making a relational database behave like a document database. Useful in the times there were no document databases around.
If we were to use a relational database we might end up with a single table with an ungodly amount of columns so that each event has all its specific columns available. But we will never use all columns for one event of course. Maybe try to re-use columns, and call them names like column1, column2 etc. Hmm… sounds like fun to maintain and develop against.
The other pattern would be to start creating a normalized schema with multiple tables – probably one per game, and one per even type etc. So then we end up with a complex schema that needs to be maintained and versioned. Inserts and selects will be spread across tables and for sure we need to change the schema when new games or events are introduced.
There is also a third pattern out there which is to store a binary blob in the database… lets not even talk about that one.
Original title and link: Design Your Database Schema ( ©myNoSQL)