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!
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:
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
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With