CouchDB
A lot of bugs have been fixed, some minor, some major and many new tests have been added.
The new version supports grouping of (top level) keys:
use YAWF::Object::MongoDB ( keys => [ { birch => 1, oak => 1, color => 1, }, { deer => 1, boar => 1, color => 1, },
]);This will push birch, oak and color in one group (group 0) and deer, boar and color in another group (group 1).
While fetching a document out of the database using ->new(), all the keys from group 0 will be fetched. Accessing one of the keys from another group (1 or higher) will add all the keys from their group(s). "color" is part of two groups, it will be fetched if either group is being requested.
Accessing any undefined key using get_column() will download the whole database document.
This is very new and even if a test script is there and it passes, there might be bugs and issues. Grouping isn't currently part of the POD documentation and using ->list will still ignore it. Please test it and comment and once I consider it to be some kind of "stable", I'll add it to POD.
Vor ein paar Tagen habe ich die Frage aufgeworfen, ob mein nächstes Projekt eine SQL-basierte oder NoSQL/dokumentenbasierte Datenbanknutzen soll.
Auf der SQL-Seite tritt Postgres - mein aktuelle Favorit unter den Datenbanken - an und auch wenn regelmäßig neue Versionen herauskommen, kann Postgres als "fertig" betrachtet werden.
Recht neu sind CouchDB und MongoDB, zwei dokumentenorientierte Datenbanken, die für diese Seite in das Rennen gingen. Das Ergebnis ist knapper als erwartet ausgefallen.
Wie bereits im ersten Post gesagt, ist das Rennen zwischen Postgres und CouchDB weiter offen. Ein paar kurze Tests haben einige weitere Nachteile von CouchDB aufgezeigt.
Es steht mal wieder ein neues Projekt an und ich bin ernsthaft am überlegen, diesmal CouchDB an Stelle von Postgres einzusetzen.
CouchDB mag der erste OpenSource-Vertreter der dokumentenbasierten Datenbanken sein, aber deswegen nicht zwangsweise der Beste. Mike Perham hat in seinem Blog drei Datenbanken miteinander verglichen und meine Entscheidung zugunsten CouchDB beeinflusst.
Bleibt die Frage: Eine relationale SQL-Datenbank oder eine dokumentenorientierte Datenbank.