2012-07-04 42 views
25

Actualmente estoy escribiendo una tesis y necesito mostrar el esquema de mi MongoDB en un diagrama. No he encontrado recursos sobre diagramas para bases de datos basadas en documentos.MongoDB: ¿Cómo representar un diagrama de esquema en una tesis?

Existen diagramas de relaciones entre entidades (ERD) para bases de datos relacionales. ¿Qué opciones tengo para MongoDB? Me he dado cuenta de que muchos blogs solo muestran el JSON en bruto como su "diagrama", pero esto no es factible en mi tesis.

Este es un ejemplo de uno de mis estructuras JSON:

//MultiChoiceQuestion 
{ 
    "title": "How are you?", 
    "valid_answers" : [ 
     { 
      "_id" : ObjectID(xxxx), 
      "title": "Great", 
      "isCorrect": true, 
     }, 
     { 
      "_id" : ObjectID(yyyy), 
      "title": "OK", 
      "isCorrect": false, 
     }, 
     { 
      "_id" : ObjectID(zzzz), 
      "title": "Bad", 
      "isCorrect": false, 
     } 
    ], 
    "user_responses" : [ 
     { 
      "user": ObjectID(aaaa), 
      "answer": ObjectID(xxxx) 
     }, 
     { 
      "user": ObjectID(bbbb), 
      "answer": ObjectID(xxxx) 
     }, 
     { 
      "user": ObjectID(cccc), 
      "answer": ObjectID(yyyy) 
     } 
    ] 
} 

//User 
{ 
    "_id": ObjectID(aaaa), 
    "name": "Person A" 
} 
//User 
{ 
    "_id": ObjectID(bbbb), 
    "name": "Person B" 
} 
//User 
{ 
    "_id": ObjectID(cccc), 
    "name": "Person C" 
} 

Podría ser esto un posible diagrama: Possible Diagram?

+0

ya que el esquema solo se aplica a un solo documento, es posible que todos solo muestren el documento. ningún otro documento en la colección debe tener el mismo esquema. –

+0

Sí, pero en mi caso cada "MultiChoiceDocument" es exactamente el mismo, así que me gustaría mostrarlo. – Andrew

+1

Aunque no hay un esquema explícito en un almacén de datos MongoDB, casi siempre hay un esquema implícito que necesita ser representado. http://martinfowler.com/articles/schemaless/ – AndrewW

Respuesta

22

Encontramos diagramas de clases para ser realmente una de las mejores maneras de representar una diseño de esquema mongo.

Puede capturar la mayoría de los elementos que tendrá un documento, como matrices, objetos incrustados e incluso referencias.

directrices

general que se utiliza para relacionar a los conceptos a UML

Insertar = Composición agregación

Referencia = Asociación de clase

Si no está familiarizado con la terminología UML entonces este es una introducción decente

UML intro from IBM site

+1

Basado en el diseño de UML obtuve esto: http://i.imgur.com/Jicxz.png – Andrew

0

hay una herramienta para hacer diagramas de MongoDB, se llama DbSchema. Descubre el esquema escaneando datos de db. También sugiero probar dos características de ellos:

  • relaciones virtuales que permiten explorar datos de diferentes colecciones al mismo tiempo. Una especie de JOIN entre diferentes colecciones.
  • documentación HTML, también la usamos en presentaciones: los comentarios están en el mouse (los diaramas se guardan como imágenes vectoriales).
Cuestiones relacionadas