I have relatively recently began coding a proprietary MUD game engine based upon a database backend (due to the wrapping of ADO.NET compliance it is a kind of non-issue having to plead fealty to one database solution rather than another). There are many different scenarios to consider in the design of the table structure but I believe I could very realistically use SQL in place of an accessory scripting language processed through an interpreter. Does it sound realistic to store every specific piece of data in the multi-user world in the database to the point of all interaction taking place ( as well as all displayed information ) through the dynamic manipulating of that data asynchronously by queries sent from each thread?
My current framework has both a 'Commands' and a 'States' table of which both have related records in the 'Effects' table. Ideally I would like to have all of the queries for database manipulation stored in the 'Effects' table. A command would trigger a related effect and an entity would have a state that would trigger a related effect on an interval of main game loop ticks in terms of that particular players thread and scope.
Could anyone think of any sort of action I would not be able to accommodate through abstracting away from this foundational system? If I am unclearly communicating anything just let me know and I would be more than happy to answer any questions or elaborate! (I am new to the whole forum thing).