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 documento Book.

  • 1 Usuario → N Préstamos
    Cada préstamo (Loan) tiene una referencia (usuario) a User.

  • 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 a Book para facilitar consultas agregadas.

  • 1 Préstamo → 0..1 Multas
    La multa (Fine) está asociada a un préstamo específico (prestamo).