Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Some months ago I sat in a meeting to discuss design and implementation details for a medicine delivery system. The fact that it was about medicine I thought it would be obvious to everyone that we would have to use a relation database with ACID properties. Last thing we want is to send medicine at best effort, I assumed everyone would be on the same page on the need to use transactions, foreign keys and all other data integrity mechanisms baked into relational databases. I was taken aback when the app developers really could not understand why we needed to use a relational database. A document database was going to be fine. Needless to say it was a long meeting and I wasn't invited back.


Blech, the worst thing I've noticed after moving to document databases even when scale does matter is the loss of the relational data model. A nice ERD that shows relationships between your entities makes everything so simple. You could have one for document database as well but people stare at you strangely. So now it's just a random collection of collections of stuff, and it takes 10x more words to describe your design.


This is a really good read: http://www.sarahmei.com/blog/2013/11/11/why-you-should-never...

It shows what happens when you have exactly the misunderstandings being discussed here. Also note that the author still has absolutely no idea how to do a simple ER diagaram.


My favourite line:

> Once we figured out that we had accidentally chosen a cache for our database, what did we do about it?

I'm going to use that one to win imaginary arguments in my head with my pet NoSQL strawman.


So they went with a non relational?


I wasn't invited back so I don't know. The back story is there had been some initial discussions before the meeting I attended. I was invited because my area is data analytics so the project owner wanted to keep me in the loop. It appears I upset the apple cart with my opinions. I was polite but firm. I don't regret it because I spend my life cleaning up messy data from systems not using core relational principles to get analytics out. Very few systems use foreign keys.


There are lots of ways to interact with folks who don't understand something that get your point across without making them feel bad. I'm guessing you didn't employ any of those strategies.


The truth is probably somewhere in between. I was firm but polite. I was called in because I was going to be analyzing the data. Build data warehouse and import other data. I had to be firm because I know how much time it takes to clean up data before you can analyse it.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: