web-dev-qa-db-fra.com

CouchDB un exemple du monde réel

Ce soir, dans mon googling technologique quotidien, je suis tombé sur couchDB, après avoir vu des tonnes de présentations sur ses performances dix à cent fois meilleures que sur n'importe quel RDBM, comment cela nous sauverait des langages SQL, des tables, des clés primaires et bien plus encore. J'ai décidé de l'essayer moi-même. Seul problème, il semble que je suis incapable de comprendre comment cela fonctionne.

Comme pour commencer, je voudrais coder un gestionnaire de contacts Web en utilisant couchDB. Le projet permettrait à l'utilisateur de faire des choses de base comme

  • Créer/modifier/supprimer des contacts
  • voir la liste de leurs contacts commandés
  • les rechercher sur différents critères

Alors comment commencer?

Voici quelques unes de mes pensées

  • créer une base de données par utilisateur comme July, Ann
  • dans ces bases de données, ajoutez un document avec le type contact, le document ressemblerait à ceci à la première place, voir le code 1
  • créer/éditer/supprimer est simple, il suffit de faire le PUT, POST, DELETE dans la bonne base de données
  • la recherche serait gérée par couchdb-lucene comme suggéré par dnolen

maintenant, voici la partie difficile, je ne comprends pas vraiment tout le concept de carte/réduire et comment je peux l'utiliser pour faire les tâches que je faisais avec SQL. Également avec des vues, comment gérez-vous la pagination et le regroupement?.

Je voudrais construire un écran avec un ensemble de liens de pagination quelque chose comme ça

 John, Doe 
 Johny, Hallyday 
 Jon, Skeet 
 
 ABCDEF ** J ** etc .... <- ce sont lien pour voir les personnes portant ce prénom 

quelle vue dois-je créer pour y parvenir, si vous pouvez fournir des échantillons, ce serait merveilleux.


Document de contact.

{
    type: 'contact',
    firstname: 'firstname',
    lastname: 'lastname',
    email: ['home': '[email protected]', 'work': '[email protected]'],
    phone: ['home': '+81 00 0000 0000'],
    address: []
    ... some other fields maybe ...
}
40
RageZ

Le livre à venir d'O'Reilly est libre de lire en ligne: http://books.couchdb.org/relax/

Installez et jouez simplement - vous pouvez faire des requêtes http directes en utilisant curl sur la ligne de commande, ou utiliser l'interface Web intégrée appelée futon.

Le stockage et la récupération de données sont vraiment faciles, la partie la plus difficile est de penser en termes de carte/réduire-vues au lieu de requêtes SQL.

23
user203631

IBM a un excellent tutoriel , utilisant curl pour lire/écrire via l'interface REST .

8
Brian Agnew

Votre application est assez facile à faire avec CouchDB. Vous auriez une base de données par utilisateur. Les contacts sont simplement des documents dans la base de données d'un utilisateur particulier. CRUD parle simplement à la base de données en utilisant HTTP. Vous pouvez créer des vues qui émettent des clés (nom, prénom) pour permettre le tri.

Pour une recherche puissante, je recommanderais couchdb-lucene.

5
dnolen