Voy a hacer un sistema de gestión de estudiantes usando MongoDB. Tendré una mesa para estudiantes y otra para registros de asistencia. ¿Puedo tener una llave en la mesa de asistencia para llegar a la mesa de los alumnos, como se muestra a continuación? ¿Cómo?¿Se puede hacer una base de datos relacional usando MongoDB?
Respuesta
La idea detrás de MongoDB es eliminar (o al menos minimizar) de datos relacionales. ¿Has considerado incluir los datos de asistencia directamente en el registro de cada alumno? Este es realmente el patrón de diseño preferido para MongoDB y puede dar como resultado un mejor rendimiento y escalabilidad.
Si realmente necesita datos altamente relacionales y normalizados, es posible que desee reconsiderar el uso de MongoDB.
La respuesta depende de cómo piensa utilizar los datos. Realmente tiene 2 opciones, inserte la tabla de asistencia o vincúlela. Más sobre estos enfoques se detalla aquí: http://www.mongodb.org/display/DOCS/Schema+Design
Para el caso de uso común, probablemente insertaría esta colección en particular, por lo que cada registro de estudiante tendría una tabla de "asistencia" incorporada. Esto funcionaría porque es poco probable que los registros de asistencia se compartan entre los alumnos, y la recuperación de los datos de asistencia también requerirá la información del alumno. Recuperar los datos de asistencia sería tan simple como:
db.student.find({ login : "sean" })
{
login : "sean",
first : "Sean",
last : "Hodges",
attendance : [
{ class : "Maths", when : Date("2011-09-19T04:00:10.112Z") },
{ class : "Science", when : Date("2011-09-20T14:36:06.958Z") }
]
}
Gracias, comencé a leer Schema Design. –
Sí. No hay reglas duras y rápidas. Debe analizar los pros y los contras de incrustar o referenciar datos. Este video definitivamente ayudará (https://www.youtube.com/watch?v=-o_VGpJP-Q0&t=21s). En su ejemplo, el atributo de número de teléfono debe estar en la misma tabla (en una base de datos de documento), porque el número de teléfono de una persona rara vez cambia.
- 1. Modelado: Xml vs. Base de datos relacional
- 2. ¿Por qué querría usar una base de datos no relacional?
- 3. NoSql vs Base de datos relacional
- 4. Representación de pedidos en una base de datos relacional
- 5. Modelado de ubicaciones geográficas en una base de datos relacional
- 6. ¿Qué ventajas tiene una base de datos basada en documentos sobre una base de datos relacional?
- 7. BigTable de Google frente a una Base de Datos Relacional
- 8. Almacenamiento de objetos R en una base de datos relacional
- 9. neo4j - base de datos de gráficos junto con una base de datos relacional?
- 10. ¿Algún buen tutorial de base de datos relacional?
- 11. ¿Es MongoDB una alternativa válida a db + lucene relacional?
- 12. ElevateDB modelo relacional hacer y no hacer
- 13. Sistema de base de datos que no es relacional
- 14. Pares de valores clave en la base de datos relacional
- 15. Base de datos estándar XSD neutral para describir un esquema de base de datos relacional
- 16. ¿Tiene sentido asignar una estructura de datos de gráficos a una base de datos relacional?
- 17. qué base de datos se adapta a mi aplicación mysql o mongodb? usando Node.js, Backbone, Now.js
- 18. ¿Cómo se almacena un trie en una base de datos relacional?
- 19. Vaciar un esquema de base de datos relacional
- 20. Obtener diagrama UML de la base de datos relacional
- 21. Arquitectura de base de datos MongoDB
- 22. ¿Cómo se almacenan los datos en una base de datos MongoDB en el disco?
- 23. Cómo hacer una prueba de base de datos adecuada (TDD) en Rails 3 usando MongoDB y Mongoid
- 24. Almacenar imágenes en una base de datos MongoDB
- 25. Cifrado de base de datos MongoDB
- 26. Base de datos orientada a objetos Vs objeto Base de datos relacional
- 27. Backbone relacional - no puede crear una instancia más de una ,,,
- 28. Borrar todo en una base de datos MongoDB
- 29. Uso de una base de datos relacional para datos Schemaless: mejores prácticas
- 30. No se puede conectar a la base de datos MongoDB 2.0.5 con pymongo 2.2
Gracias por su respuesta. Mi instructor me dio este proyecto para hacerlo con MongoDb. Así que buscaré información de algún lugar/alguien (como tú :)) y trataré de hacerlo. Gracias de nuevo. –
Si eres nuevo en MongoDB, hay un tutorial bastante bueno en su sitio web: http://www.mongodb.org/ (solo haz clic en "Pruébalo" y escribe "tutorial" en el intérprete de comandos.) –
@MikeChristensen En este momento, este consejo ya no es válido. Probablemente cambiaron su sitio web. – Kunok