2011-06-13 14 views
11

Acabo de empezar a jugar con couchdb y realmente me está gustando hasta ahora, pero me preguntaba cuándo debería crear una nueva base de datos.CouchDB crea una base de datos por tipo de documento?

Esto es lo que quiero decir:

Si volviera a crear un blog en un servidor con varios blogs y esto era un RDBMS, me gustaría crear una base de datos llamada fox_blog y crear tablas y las relaciones de los mensajes , comentarios, etc.

Ahora en CouchDB, simplemente crearía 3 tipos de documentos: publicaciones, comentarios y cuentas de usuario.

Pero esta es mi pregunta: ¿Haría un db llamado fox_blog y agregaría un campo 'tipo' a cada uno de los documentos (por ejemplo, en los documentos posts habría un campo 'tipo' con el valor 'post ')? ¿O crearía un db por separado para cada documento y precederé al nombre con fox_ (p. Ej., El nombre de db sería fox_posts para las publicaciones)? ¿O ninguno de estos es correcto?

Avísame si algo de esto es claro, que era un poco difícil de explicar je

Respuesta

5

Generalmente, trato de mantener aplicaciones separadas en cada una de sus propias bases de datos. En este caso, si se accede a todos los blogs en una sola interfaz, consérvelo en 1 base de datos, usando campos como type y blog para identificar cada documento.

Si está ejecutando varios blogs, cada uno de ellos accedido en su propio dominio o dirección, puede considerar segmentar cada uno de los blogs en su propia base de datos. Básicamente, CouchDB te permite una gran flexibilidad aquí, así que aprovecha eso y experimenta.

+0

Lo único que me impide hacer esto es cómo el sofá actualiza sus vistas cada vez que hay una actualización. Así que tome los comentarios, por ejemplo. Se actualizan con mucha más frecuencia que una entrada de blog, por lo que no sería mejor separar los comentarios de las publicaciones en algunos casos (suponiendo que no tenga una vista que combine las publicaciones y los comentarios por alguna razón extraña).)? – Obto

+1

Buena discusión. Fox, tienes razón en que hay más actualizaciones, sin embargo, CouchDB procesará (mapeará/reducirá) cada documento una vez cada uno, básicamente después de que se haya almacenado. Ya sea que se distribuyan en múltiples bases de datos o se almacenen en una sola, será más o menos lo mismo. Estoy de acuerdo con Dominic, regla general: guárdela en una base de datos cuando comience. – JasonSmith

+1

De acuerdo, guardo todos mis campos en una base de datos por ahora y se ve bastante bien. Pero desde mi comprensión ahora, si encuentro que cierto tipo de documento no se usa en las vistas que incluyen los otros documentos, podría ser una buena idea moverlo a su propia base de datos. Es esa mentalidad correcta? – Obto

8

Debe crear una única base de datos con un campo de tipo en cada documento.

Es posible que desee escribir una vista que devuelva el documento y todos sus comentarios juntos.

5

Lo que es más importante, hacer consultas en múltiples DB no se admite directamente, aunque hay formas de evitarlo.

En su caso con publicaciones, los comentarios y las acciones en bases de datos separadas no funcionarían en absoluto.

Se puede utilizar cualquiera de pato escribir a máquina o utilizando un campo de tipo "post/comentario", etc.

CouchDB tiene una base de datos integrada de usuario que es accesible dentro de su aplicación también.

Cuestiones relacionadas