help you fix your problem You can achieve the desired result with both SQL and NoSQL database. But the project you are talking about is more relational design. Example:- Doctor can visit multiple clinics. A patient has also related to the Clinic as well as the doctor. The best solution, in this case, is the hybrid approach where your primary database should be relational and for the reading operation, you can plug NoSQL database like MongoDB if required.
will be helpful for those in need IBM Mainframes have had "non-relational" databases since the 60s (hierarchial databases such as IMS + variants). These databases are still in use because they are extremely fast and handle huge scale well. The point of relational databases was to provide a regular, relatively abstract method for storing and retrieving data in which the tuning can be done relatively independently of the data model (not true for IMS). They were designed rather in reaction to the inability to reorganize hiearchical databases easily. The upside is nice organization; the downside is medium, not high performance.
RDBMS vs NoSQL for CRM, CMS and other financial Systems
I wish this helpful for you 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.
this one helps. Each entity in an Azure Table has a partition key and row key. With careful planning, you can choose good values for the partition key and row key to match the way you need to update and retrieve the data. If you know the partition key and row key of an entity, it can be retrieved efficiently. Otherwise, you are potentially scanning an entire partition or entire table to retrieve entities. See this article for information about designing your partitions: http://msdn.microsoft.com/en-us/library/azure/hh508997.aspx. See this article for information about performance targets: http://msdn.microsoft.com/en-us/library/azure/dn249410.aspx.
around this issue It depends of the kind of key-value store your are talking. If you take for instance gdbm it's very comparable to hasmap in C++ except that key and values must be bytes. If you want to store more complicated datastructure you must serialize them. In this kind of database, there is AFAIK not much patterns to use.