Skip to content

ADR 4 ‐ Base de datos

Santiago21112001 edited this page Apr 7, 2024 · 1 revision

Decisión

Hemos decidido utilizar MongoDB como base de datos.

Justificación

  • Modelo de Datos Flexible: MongoDB utiliza un modelo de datos flexible basado en documentos JSON, lo que permite almacenar datos de forma más natural y sin necesidad de definir un esquema rígido, lo que es beneficioso para aplicaciones con requisitos cambiantes o no definidos por completo.

  • Consultas Potentes: MongoDB ofrece un potente sistema de consultas y operaciones de búsqueda, incluidas consultas basadas en índices, búsqueda de texto completo y agregaciones, lo que facilita la extracción y manipulación de datos en nuestra aplicación de juego de preguntas.

Inconvenientes

  • Falta de esquema: hay que definir a mano el esquema porque MongoDB no te lo da ya hecho. Sin embargo, esto no es un problema puesto que nuestro esquema es relativamente sencillo.

  • Curva de Aprendizaje: Para los desarrolladores que están más familiarizados con bases de datos relacionales tradicionales, la transición a un modelo de datos NoSQL como MongoDB puede requerir tiempo y esfuerzo para comprender los conceptos y las mejores prácticas asociadas.

Alternativas consideradas

  • MySQL/PostgreSQL: Bases de datos relacionales como MySQL o PostgreSQL son alternativas sólidas a MongoDB, especialmente si se requiere una consistencia fuerte y transacciones ACID (Atomicidad, Consistencia, Aislamiento y Durabilidad) en la aplicación.