RDBMS vs NoSQL for CRM, CMS and other financial systems

I read all the SQL vs NoSql material there on the Internet (I spent several days on it, so I have the right to call it that way :)) and still feel that I am far from being able to decide on which platform our products should work. We are going to start developing a new set of products that mainly correspond to CRM / CMS categories, I would say several B2B, B2C, B2E, E-Commerce, as well as other financial and banking applications. So it will be a complex system with dozens of databases that solve different problems. Let me focus on the database area. I found this article especially interesting for database systems in the enterprise world. So, the actual problem:

Is it better to stay with good old RDBMS like MySql (yes, it must be open source, this is the only requirement) or start with NoSQL like MongoDB / CouchDB (I guess that Cassandra is too scalable for CRM, it won’t be very common and highly grouped system. Up to 4 strong guys will cope with this task perfectly) ???

As additional information, I can say that the system will involve a lot of media files and documents, this is necessary for shops, markets, and personnel management systems. And that repository consumers will be mostly web applications.

Would it be better to split the database server into two parts: RDBMS serving relational data and NoSQL for storing multimedia?

What do you think, and if you have examples or such experience, any help will simply help to avoid future problems. So thanks guys in advance!

+6
source share
1 answer

There are NoSQL databases (NewSQL) that fully comply with ACID requirements that you might consider. I would use one of them to process transactional CRM data. With them, there are simply too many advantages over traditional relational databases:

  • Significant performance
  • Schemaless
  • Some allow you to completely remove ORM and automatically use the created objects.
  • Some of them have an integrated web server with REST / JSON support, which would be good for you, since you will work with web applications for the end user.

The ACID part is very important if you create a CRM. I once created a CRM system that uses a NoSQL database, and performance allowed me to add features that we would never have considered if we used traditional RMDBMS.

I like the idea that you should put media and documents in a CDN and then reference them from your database.

Your requirement for the source code may be a little indicative.

I wrote an article on this topic so that you can give some tips on the topic of database selection:

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

+6
source

Source: https://habr.com/ru/post/950723/


All Articles