Skip to content

ADR 1 ‐ Diseño de BD para Generación de Preguntas

yagonavajas edited this page Mar 2, 2024 · 2 revisions

1. Introducción

El propósito de este documento es explicar las decisiones tomadas en el diseño de la base de datos para el sistema de generación de preguntas aleatorias. Se seleccionó MySQL como el sistema de gestión de bases de datos, y se optó por una estructura normalizada con tres tablas: Categorías, Preguntas y Respuestas.

2. Elección de MySQL

Razones: Madurez y Estabilidad: MySQL es conocido por su estabilidad y madurez en entornos de producción. Rendimiento: Es eficiente para consultas estructuradas y escalabilidad. Amplia Comunidad: Cuenta con una comunidad activa que proporciona soporte y recursos abundantes.

3. Estructura de Tablas

3.1 Tabla Categorías

Justificación:

Permite la clasificación y organización de preguntas por categorías. Facilita la actualización y mantenimiento de la información relacionada con las categorías.

3.2 Tabla Preguntas

Justificación:

Almacena las preguntas junto con su texto y la categoría a la que pertenecen. Utiliza una clave foránea para mantener la integridad referencial con la tabla de Categorías.

3.3 Tabla Respuestas

Justificación:

Almacena las respuestas asociadas a cada pregunta, indicando cuál es la correcta. Utiliza una clave foránea para mantener la integridad referencial con la tabla de Preguntas.

4. Rechazo de Otras Opciones

4.1 Tabla Única

Razones del Rechazo:

Redundancia de Datos: Podría llevar a redundancia y dificultar la actualización consistente de la información. Complejidad de Mantenimiento: Mantener la integridad de los datos podría volverse más complejo con la gestión de datos duplicados.

4.2 Otras Bases de Datos (MongoDB, MariaDB)

Razones del Rechazo:

Estructura Relacional: La estructura de los datos es principalmente relacional, por lo que un sistema de base de datos relacional como MySQL es más apropiado. Experiencia y Compatibilidad: MySQL es ampliamente utilizado y bien soportado, y la elección se basa en la familiaridad y compatibilidad con herramientas existentes.

Conclusión: El diseño elegido busca equilibrar la simplicidad, eficiencia y mantenimiento de la base de datos para el sistema de generación de preguntas aleatorias. MySQL, con su estructura relacional y las tres tablas propuestas, proporciona una solución que se alinea con las necesidades específicas del proyecto. Este diseño permite una fácil actualización, mantenimiento y expansión del conjunto de preguntas en el futuro.