9. Implementación de ORM - manuelcastro95/JUMALI GitHub Wiki
Se implementó el ORM usando Mongoose, una biblioteca de modelado de datos para MongoDB en entornos Node.js.
Tecnología utilizada
- ORM: Mongoose
- Base de datos: MongoDB
Modelo de datos y relaciones
Se definieron cinco entidades principales:
Book (Libro)
Contiene la información bibliográfica de cada título. Es la entidad principal para ejemplares y préstamos.
Copy (Copia)
Representa cada ejemplar físico de un libro. Se relaciona con Book
mediante una referencia (ref: 'Book'
).
User (Usuario)
Representa a las personas registradas en el sistema, tanto administradores como usuarios. Se relaciona con Loan
(préstamos) como propietario.
Loan (Préstamo)
Entidad relacional entre User
, Copy
y Book
. Registra cuándo y qué se prestó, y controla el estado del préstamo (activo, vencido, devuelto).
Fine (Multa)
Relacionada con Loan
. Registra el valor, fecha y estado de pago de las multas aplicadas por retrasos.
🔗 Relaciones entre modelos
-
1 Libro → N Copias
Cada copia (Copy
) tiene una referencia (libro
) al documentoBook
. -
1 Usuario → N Préstamos
Cada préstamo (Loan
) tiene una referencia (usuario
) aUser
. -
1 Préstamo → 1 Copia
Cada préstamo está vinculado a una copia única (copia
) de un libro. -
1 Préstamo → 1 Libro
Se mantiene la referencia directa aBook
para facilitar consultas agregadas. -
1 Préstamo → 0..1 Multas
La multa (Fine
) está asociada a un préstamo específico (prestamo
).