Thread: Storage Modules
View Single Post
Old 02-13-2004, 06:36 PM   #5
Yui Unifex
Senior Member
 
Join Date: Apr 2002
Location: Florida
Posts: 323
Yui Unifex is on a distinguished road
Send a message via ICQ to Yui Unifex Send a message via AIM to Yui Unifex
Question

My own codebase, Aetas, uses a PostgreSQL backend. My codebase before that, Deus, used a MySQL backend. In my experience, using a relational database to store mud information is just so much more conveniant and flexible than not. If your mud just uses a dumb 'load everything on boot' model, and you only index by one value, then a relational database is probably not for you.

A relational database is immensely useful when using lazy loading. Our system only loads from disk an object that has been specifically requested, so it's very easy to do e.g. SELECT * FROM rooms WHERE elementid = X, or SELECT * FROM rooms WHERE name = 'Y'. Typical mud databases are poorly built for this kind of thing, because they tend to group collections of rooms / npcs / objects into area files that make seeking and updating specific items difficult. The database is also useful for searching within data for a match, such as when you want the builder equivalent of 'grep' to find bits and pieces of information.

As for accessing MUD data outside of the database, I may be getting off topic here but we use XML-RPC to query the MUD directly. This way we have no trouble keeping objects in sync. Fortunately implementing RPC methods is dead simple, as is making use of them in web builder apps
Yui Unifex is offline   Reply With Quote