2010-06-27 13 views
8

Estoy intentando implementar el almacenamiento de publicaciones de blog usando mongo db.Relaciones de Mongo DB entre objetos

Tengo dos entidades del dominio:

"Blog post" y "autor"

Actualmente He añadido la propiedad AuthorId al blog entidad resultante. ¿Es ese el enfoque correcto para almacenar la relación entre los objetos?

Respuesta

9

Actualmente he agregado la propiedad AuthorId a la entidad de publicación de blog. ¿Es ese el enfoque correcto para almacenar la relación entre los objetos?

Yo diría que no. Se supone que "debe almacenar todo lo que necesita en un documento de blog en una forma desnormalizada (por ejemplo, la publicación del blog, los comentarios, las etiquetas, etc.). Entonces, si desea mostrar el nombre del autor, debe agregarlo al documento del blog. Esto permitiría obtener los datos de una página entera con una sola consulta, que es el punto de una base de datos orientada a documentos.

+6

cambiar el nombre de un usuario se convierte en una llamada muy caro! – Blankman

+2

@Blankman: cierto. Aún así, creo que la filosofía de db orientada a documentos es obtener un documento completo en una consulta.Y, por cierto, ¿cuál es la relación entre [cambiar el nombre de un usuario]/[mostrando una publicación de blog]? Creo que es ** muy ** bajo. –

+0

@Blankman, puedes hacerlo de manera asíncrona y las actualizaciones son muy rápidas en MongoDB porque MongoDB tiene una actualización en el lugar. También puede indexar las publicaciones de blog en authorid. – TTT

19

creo que este post va a ser adecuado para usted http://www.mongodb.org/display/DOCS/Schema+Design

Casos de uso

clientes// orden de línea de artículos

pedidos deben ser una colección. clientes una colección. los artículos de línea deben ser una matriz de elementos de línea incrustados en el objeto de orden.

Sistema de creación de blogs.

Las publicaciones deben ser una colección. el autor del post puede ser una colección separada, o simplemente un campo dentro de las publicaciones si solo es una dirección de correo electrónico. los comentarios deben ser objetos incrustados dentro de una publicación para el rendimiento.

esquema Fundamentos de Diseño

Kyle Banker, 10gen

http://www.10gen.com/presentation/mongosf2011/schemabasics

Indexación & Optimización de consultas Alvin Richards, Tercera Dir Ector de Empresa Ingeniería

http://www.10gen.com/presentation/mongosf-2011/mongodb-indexing-query-optimization

** Estos 2 videos son los mejores marcas en mongoddb visto nunca en mi humilde opinión *

+0

gracias por los enlaces de video! realmente útil para la transición de DBs relacionales a noSQL. –

Cuestiones relacionadas