mongodb – Advice for database choice and architecture for implementing a Human Resource web app

mongodb – Advice for database choice and architecture for implementing a Human Resource web app

Your decision to go with a relational database or a NoSQL database will largely depend on a number of factors:

  • How the data you need to be stored is to be modeled.
  • What the expected access pattern for the data is to be
  • What requirements you have for scalability
  • What requirements you have for data consistency

Typically NoSQL might be preferable when you have:

  • A schema-less or dynamic data structure.
  • No need to access the data outside of using a handful of indexes (i.e. you dont need much flexibility in how you access the data)
  • You have the need to scale horizontally (something traditionally more difficult to do with relational DBs)
  • You maybe dont need transactional consistency and are possibly OK with eventual read consistency (depending on the NoSQL system you choose)

To me the usage you listed would seem to be more in-line with what you might see in a typical relational DB-backed application. That is not to suggest that you should ONLY use a relational DB. I think any sufficiently complex set of inter-related services that need to achieve high scalability might have needs for a wide array of data storage mechanisms – relational DBs, NoSQL, in-memory caching, persistent flat file storage, etc. You will just need to look at incorporating these as your needs dictate.

Regarding your comment on image storage. I have found that there are very few cases where storing images in a database makes sense. For most cases, storing references to image locations (filepaths, URLs, etc.) would be the preferred approach.

mongodb – Advice for database choice and architecture for implementing a Human Resource web app

Leave a Reply

Your email address will not be published.