Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

RDBMS vs NoSQL for CRM, CMS and other financial Systems [closed]

I've read the whole SQL vs NoSql stuff out there in the Internet (spent a few days on it so I have rights to call it that way :) ) and still have a feeling I'm far away from being able to decide wich platform our products shall go with. We're about to start designing a new set of products that mostly fit CRM/CMS categories, I'd say several B2B, B2C, B2E, E-Commerce as well as other financial and banking apps. So it's gonna be a complex system with dozens of databases solving different tasks. Let's concentrate on the DB area. I found this article is particularly interesting for DB systems in the world of enterprise. So the actual problem is:

Is it better to stay with good old RDBMS such as MySql (yes, it has to be open-source, that's the only requirement) or start off with NoSQL such as MongoDB/CouchDB (I guess Cassandra is too scalable for CRM, it's not going to be a very distributed and heavily clustered system. Up to 4 strong guys will do the job perfectly)???

As additional details I can say that a lot of media stuff and docs will be engaged in the system, this is a must for stores, markets, HR systems. And that the consumers of the storage will be web apps mainly.

Would it be better to split the DB back-end into two parts: RDBMS serving relational data and NoSQL for the media storage?

What you think and if you have examples or such an experience any help will just extremely help to avoid future problems. So Thank you guys in advance!

like image 903
Arman Avatar asked Jul 31 '13 14:07

Arman


1 Answers

There are NoSQL (NewSQL) databases that are fully ACID compliant that you could consider. I would use one of those to handle the transactional CRM data. There are simply too many benefits using these compared to traditional relational databases:

  • Much better performance
  • Schemaless
  • Some let you remove the ORM completely and uses the created objects automatically
  • Some have integrated web server with REST/JSON support, that would be nice for you since you will work with web apps for the end user.

The ACID part is very important if you will build a CRM. I once build a CRM system that uses a NoSQL database and the performance made it possible to add features we never would have considered if we had used a traditional RMDBMS.

I like the idea that you should put the media and documents into a CDN and then refer to them from your database.

Your open source requirement could be a bit of a showstopper though.

I wrote an article on the subject that you might give some advice in the topic of selecting a database:

http://www.ulitzer.com/node/2636237

like image 120
Niklas Bjorkman Avatar answered Oct 08 '22 16:10

Niklas Bjorkman