I'm looking at using CouchDB for one project and the GAE app engine datastore in the other. For relational stuff I tend to use postgres, although I much prefer an ORM.
Anyway, what use cases suit non relational datastores best?
I'm looking at using CouchDB for one project and the GAE app engine datastore in the other. For relational stuff I tend to use postgres, although I much prefer an ORM.
Anyway, what use cases suit non relational datastores best?
Consider the situation where you have many entity types but few instances of each entity. In this case you will have many tables each with a few records so a relational approach is not suitable.
Here is a nice little article (spread over three pages) that covers the use-case for non-relational databases.
http://www.readwriteweb.com/enterprise/2009/02/is-the-relational-database-doomed.php
In a nutshell, when you need massive scalability then you probably need a non-realtional db. Of course, you may well end up writing a lot more code to do what a relational db does for you, but if you really need that scalability, then the relational db option is usually more expensive, and very tricky to architect properly.
In some cases that are simply nice. ZODB is a Python-only object database, that is so well-integrated with Python that you can simply forget that it's there. You don't have to bother about it, most of the time.