Pesistencia - code-mirror-arsw/code_mirror_front GitHub Wiki
🗃️ Diseño de Base de Datos
El sistema está desarrollado bajo una arquitectura de microservicios, lo que implica que cada servicio posee y gestiona su propia base de datos de forma completamente aislada. Como consecuencia:
- No existen relaciones directas (claves foráneas) entre entidades de distintos microservicios.
- Las relaciones entre entidades que pertenecen a diferentes dominios se gestionan de forma lógica desde la capa de negocio (Backend).
- Este enfoque mejora la escalabilidad, autonomía y mantenibilidad de cada servicio, alineándose con las buenas prácticas de sistemas distribuidos.
Cada microservicio contiene su propio conjunto de tablas internas, y solo aquellas colecciones embebidas o relaciones internas (como listas de participantes) se representan con claves foráneas dentro del mismo servicio.
✅ Ejemplo de Relaciones
Servicio | Entidades | Relaciones internas |
---|---|---|
user_service |
user , public_profile |
1 : 1 entre usuario y perfil público |
offer_service |
job_offers , job_offer_participants |
1 : N entre ofertas y participantes |
interview_service |
interviews , interview_participants |
1 : N entre entrevistas y sus participantes |
⚠️ Las referencias como
offerId
,userId
oadminEmail
en servicios cruzados se manejan como texto plano (UUID o email), y cualquier validación o combinación entre ellos se resuelve desde el Backend, nunca a nivel de base de datos.
📌 Siguiente Paso
En el siguiente apartado se presenta el diagrama lógico de bases de datos, separado por microservicio, donde se pueden visualizar las tablas y sus relaciones internas, sin comprometer el aislamiento entre servicios.