17 Oct 2012 @ 11:50 PM 

I work in Healthcare and it blew my mind when I found out that a developer hired by a hospital (already a no-no) developed software using MongoDB for an enterprise database for relational type data. To make matters worse, they were attempting to remake existing software which already had relational data! I think it was a cheap compromise because it made one aspect of their issue “go away”. What was it? SPACE. It wasn’t even an issue! There were over 200 fields in the original table, and their idea was “well, if we only use some of the fields, then we can save space.” :( They, however, failed to realize that almost ALL the fields get filled out DURING THE COURSE OF THE PATIENT’S THERAPY.

Why is this stupid? Consider this database table:

FirstName   LastName
John        Doe

and now this MongoDO record:


The characters in the table above would only be 7, plus 1 or 2 bytes for length for each column, so perhaps 9 (for varchar(50), UTF-8). The second example would be the characters as shown: 29!

So … where is the space savings? There is none (unless a case gets cancelled or something). To make matters worse, MongoDB is NOT SUPPORTED natively by most reporting software. Many hospitals have report writers, and they will not be able to work well with it (for ad-hoc reporting). To make matters even WORSE AGAIN, there are few DBAs (and none in most places) who even know what to do with it. Also, what about renaming columns? You’d have to update every record!!! What about trigger events, special stored procedures, and transactions!? Nothing.

Don’t be stupid or lazy, and don’t put databases back to the stone ages – and if anyone tells you “but it scales!”, just picture a big “L” on their forehead from now on. Just stick with more efficient databases that have evolved over the decades – which CAN also scale in their own way (see here and here).

Posted By: James
Last Edit: 01 Nov 2012 @ 10:36 PM

EmailPermalinkComments (0)
Tags: ,
Categories: Coding, Databases