User blog:AimeePlaysMSM/Databases vs wikis, templates and insanity

I've written about the down sides of a wiki vs that of the Guide app before, but I feel that I didn't quite get at the heart of another issue that a wiki faces which such an app does not; a database.

My most recent edit - at the time of this post - is adding a Required Inventory table to Hornacle. This requires, obviously, specifying which Monster Eggs are required for the Hornacle to be activated, and how many of them. But the table has extra information which helps players strategize: the time it takes to breed such an egg (in normal and enhanced breeding structures) and which islands they can be bred on.

Where does the down side come in? The fact that each Monster's page had to be opened, breeding times read and written back into the table, the islands read, and written back into the table... not to mention some of the other fluff required just to make it look good.

Templates can make some of that work easier. The required eggs and number of each can already be presented in a more compact way through the MultiEggList template, it looks like. So much easier. An argument against templates it that it makes the wiki 'code' less readable - although personally I find that template pretty straight-forward, others may not. That argument does become moot when taking into consideration who will edit that information to begin with; generally not a casual user, but somebody with an interest in adding it, and generally willing to figure out how to do so.

However, while the table could be similarly templatized, the information supplied would still have to be hardcopied from other pages, e.g., typically requiring some of those to be split up further, doesn't lessen the workload all that much and the information presented still depends on the wiki editor to enter the correct values.

This is where an app shines. Its information, besides being based on official data, can be based on a database with relationships. Instead of having to look up from a page what a Monster's breeding times are, it can simply query the database "Hey, for Monster, what is its breeding time?", and the database manager will essentially reply with the number it knows of. If that number ever changes, that number essentially changes on every screen you would look at, because those screens always check with the database.

To do something similar in a wiki would require a similar database. But wikis don't have databases - at least, none that are exposed to the editors (the wiki itself, users, etc. are of course stored in a database ) for use on pages. So it would have to use a template that looks at a supplied parameter, what information is being requested, and then return that information. Instead of entering "9 hours / 6 hours" in a table, it would include /. Hardly more compact. Worse still, the template code that would deal with that would be a spaghetti mess. E.g. if one were to try to get a list of the islands as small images with links to their pages, those would require the template to invoke itself with new parameters  to somehow run code that checks each Island's list of monsters for T-Rox and collect the Islands that match (not sure that's even possible on Wikia's version of MediaWiki!) and build icon/link output text for that query - which would still be incompatible with that table, requiring a further parameter to specify you want table cell output, or repeat the template multiple times with a counter to only get the first island, second island, etc. Insane.

Thankfully, while a database is absolutely nice to have, the data in My Singing Monsters rarely changes, so the issue is largely moot - even if it's a pain in the behind to deal with on an initial edit and does lead to further potential for errors.