4 ms·
When you write your app, you are choosing a programming language to express your ideas. This is a MODEL of what you want to do - for example if you code using
by opendomain 14y ago
When you write your app, you are choosing a programming language to express your ideas. This is a MODEL of what you want to do - for example if you code using Object Oriented Design, you may have a Workout object and an Exercise object. So your design uses "HasA" inheritance - a Routine HasA Workout. But when you want to store the data these objects contain in a database, the model is now Relational. You have one record for the Routine and multiple for the Workouts.
Because the MODEL is different, you get impedance when you move data between the layers. An ORM is an Object-Relational Mapper that helps reduce this friction, but it can still have problems especially when you have many-to-many or circular relationships.
NoSQL datastores allow you to save your data very closely to how you model it in your application and you do not need an ORM. However, you do not get it for Free you have simply decided to move the logic of maintaining a consistent state into your application. Also, as your application evolves, it will become more difficult to manage your changes in your schemas because you have only deferred the cost change without following a good software development process, your system may spaghetti code very quickly.
If you want to learn more contact me at Ric AT NoSQL dot com