Closed claudio-alvarez closed 5 months ago
ethicapp-v2-api-v2-dbtables.txt
Antigua: Nueva: parte de alumno:
En la lista depurada (tablas eliminadas), falta listar tablas que efectivamente se propone borrar. Dentro de las tablas a eliminar:
Queda aprobada la propuesta de modificación al diseño de schema, puedes continuar la implementación de las migraciones con Sequelize.
@benjamin-gonzalez-diaz, puedes crear un PR para ir avanzando en esto, dado que desde un issue no podemos hacer review del código. Observo un par de detalles:
Podríamos adoptar un par de convenciones de nombres para mayor consistencia:
Incluso, hay algunas tablas cuyos nombres podríamos perfeccionar, por ejemplo:
También podríamos perfeccionar los nombres de las claves foráneas, adoptemos la convención de nombrar la FK con el nombre de la tabla a la que hace referencia, en singular, con sufijo id, por ejemplo, si la FK referencia "users", la FK tendría que llamarse user_id.
Ojo con los atributos de modelName y tableName cuando creamos modelos! Si no somos consistentes, tendremos problemas después al utilizar la interfaz de consultas de sequelize. Aquí hay una descripción sobre los dos campos anteriores, con un ejemplo:
https://chat.openai.com/share/44478ecb-bc08-4730-9567-3032592efe44
Implementado y revisado en PR #301.
Descripción general
Vamos a recrear el schema de base de datos utilizando sequelize. Haremos ciertas modificaciones al schema, de manera que las tablas que guardan contenido como preguntas y respuestas sean una sola, y éstas contengan una columna de tipo json/jsonb para almacenar estos contenidos como objetos, en vez de tener tablas separadas como ocurre en el schema en ethicapp-v2.
Para esto sería adecuado:
¿Cuándo se usaría?
La reimplementación de la base de datos utilizando sequelize permite utilizar migraciones para controlar la evolución de la base de datos, y brinda una serie de herramientas que facilitan la mantenibilidad de ella. Además, sequelize provee una interfaz de consulta que serviría para flexibilizar la implementación de endpoints de API y hacerla en forma segura y compatible con el último módulo de node-postgres (pg).