2009-11-05 37 views
39

Esta noche en mi tecnología diaria en Google encontré couchDB, después de ver un montón de presentaciones sobre cómo funciona de diez a cien veces mejor que cualquier RDBM, cómo nos ahorraría de lenguajes SQL, tablas, claves principales y mucho más. Me decidí a probarlo yo mismo. El único problema parece ser que no puedo entender cómo funciona.CouchDB un ejemplo del mundo real

Para empezar, me gustaría codificar un administrador de contactos web utilizando couchDB. El proyecto permitiría a los usuarios hacer cosas básicas como

  • Crear/Editar/Eliminar contactos
  • ver una lista de sus contactos ordenó
  • buscarlos en varios criterios

Entonces, ¿cómo comienzo ?

Aquí algunos de mis pensamientos

  • crear una base de datos por usuario como julio Ann
  • en los DB, añadir un poco de documento con el contacto de tipo, el documento se vería así en primer lugar ver el código 1
  • crear/editar/borrar es sencillo sólo tiene que hacer el PUT, POST, DELETE en la base de datos de buena
  • búsqueda sería manejada por couchdb-Lucene como dnolen sugirió

ahora aquí viene la parte difícil, realmente no entiendo todo el concepto de mapa/reducir y cómo puedo usar eso para hacer los trabajos que solía hacer con SQL. También con vistas, ¿cómo maneja la paginación, también agrupación?

me gustaría construir una pantalla con un conjunto de enlaces de paginación algo como esto

 
John, Doe 
Johny, Hallyday 
Jon, Skeet 

A B C D E F **J** etc .... <-- those are link to see persons with that first name 

lo vista debería crear para lograr eso, si usted puede proporcionar muestras Sería maravilloso.


Documento de contacto.

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

funny Leí todo lo contrario que CouchDB es realmente lento. Al igual que con todo el software erlang, es muy lento con 1-4 núcleos, pero solo comienza a brillar cuando escala hasta 32+ núcleos – Toad

+2

Para un producto similar pero basado en C++, puede consultar: mongodb – Toad

+1

¿Puede proporcionar el enlace? – RageZ

Respuesta

23

El próximo libro de O'Reilly es libre de leer en línea: http://books.couchdb.org/relax/

sólo tiene que instalar y jugar - usted puede hacer peticiones http rectas utilizando rizo en la línea de comandos o bien utiliza el incorporado en la interfaz web llamado futón.

Almacenar y recuperar datos es realmente fácil, la parte más difícil es pensar en términos de mapa/reducir vistas en lugar de consultas SQL.

+0

gracias por el enlace en realidad el libro es más detallado que el sofá DB documentación .... – RageZ

+1

en realidad la documentación CouchDB API es mejor que una gran cantidad de proyectos. Se mantiene actualizado y preciso. Pero, como toda la documentación de API, no es un libro de cocina, es un trabajo de referencia. –

+1

http://docs.couchdb.org/en/latest/ –

5

Su aplicación es bastante fácil de hacer con CouchDB. Tendría una base de datos por usuario. Los contactos son simplemente documentos en la base de datos de un usuario en particular. CRUD solo está hablando a la base de datos usando HTTP. Puede crear vistas que emitan claves (apellido, nombre) para permitir la clasificación.

Para una búsqueda potente, recomendaría couchdb-lucene.

Cuestiones relacionadas