The Skinny on Databases

Here is a great article on using databases to build web applications – one of the best that I have read in a while.

This article was especially relevant to me because I recently reviewed several projects where data stored in a configuration table was used to set some variables for a VoiceXML application. Most of the project tables (separate table for each project) had no more than few records to specify preferences used to control the behavior of the application. (For example, if the current date falls between a date range stored in the table, play a special greeting file.) Sometimes the data hadn’t been changed since the project was originally developed many months (sometimes a couple of years) before, but no one had ever thought to ask if the application needed to have a database on the back end in the first place.

There are other options that I have floated in such situations. Since the platform I work on supports the <data> element that is part of the VoiceXML 2.1 specification, I think it’s reasonable to ask whether this data can be stored in an XML file, especially if it doesn’t change all that often. I think using the <data> element’s functionality to read data from an external XML file would be a pretty good use in a scenario like this. Alternatively, what’s wrong with a simple JavaScript array to hold a few configuration values?

I’m not suggesting that alternatives to databases should be used just because they can be, but if it adds a significant amount of additional complexity to an application why not consider another approach?