Entidades del proyecto - jpmendeza2401/MISW-Software-aplicaciones-moviles GitHub Wiki

Modelo de datos

1. Descripción general

El modelo de datos de Vinilos representa la información relacionada con álbumes musicales, intérpretes, coleccionistas, canciones, comentarios y premios.

2. Entidades del sistema

2.1. Album

Representa los álbumes musicales disponibles en la aplicación.

Atributo Tipo de dato inferido Descripción
id Integer Identificador único del álbum.
name String Nombre del álbum.
cover String (URL) Dirección de la imagen de portada.
releaseDate Date Fecha de lanzamiento del álbum.
description Text Descripción del álbum.
genre String Género musical.
recordLabel String Sello discográfico.

2.2. Performer

Representa a los intérpretes musicales, tanto músicos individuales como bandas.

Atributo Tipo de dato inferido Descripción
id Integer Identificador único del intérprete.
name String Nombre del músico o banda.
image String (URL) Dirección de la imagen del intérprete.
description Text Descripción del intérprete.
birthDate Date Fecha de nacimiento del músico.
creationDate Date Fecha de creación de la banda.
type String Tipo de intérprete: Musician o Band.
bandId Integer Identificador de banda, cuando corresponda.

2.3. Collector

Representa a los usuarios coleccionistas de álbumes musicales.

Atributo Tipo de dato inferido Descripción
id Integer Identificador único del coleccionista.
name String Nombre completo del coleccionista.
telephone String Número de contacto.
email String Dirección de correo electrónico.

2.4. Track

Representa las canciones asociadas a un álbum musical.

Atributo Tipo de dato inferido Descripción
id Integer Identificador único de la canción.
name String Nombre de la canción.
duration Time o String Duración de la canción.
albumId Integer Referencia al álbum al que pertenece.

2.5. Comment

Representa los comentarios y las calificaciones que los coleccionistas realizan sobre los álbumes.

Atributo Tipo de dato inferido Descripción
id Integer Identificador único del comentario.
description Text Contenido del comentario.
rating Integer Calificación asignada al álbum.
albumId Integer Referencia al álbum comentado.
collectorId Integer Referencia al coleccionista que realiza el comentario.

2.6. Prize

Representa los premios y reconocimientos musicales.

Atributo Tipo de dato inferido Descripción
id Integer Identificador único del premio.
organization String Organización que otorga el premio.
name String Nombre del premio.
description Text Descripción del premio.

2.7. CollectorAlbum

Representa la asociación entre un coleccionista y un álbum perteneciente a su colección. Esta entidad corresponde a la tabla collector_album y contiene información adicional sobre dicha asociación.

Atributo Tipo de dato inferido Descripción
id Integer Identificador único del registro.
price Numérico Precio registrado para el álbum.
status String Estado del álbum en la colección.
albumId Integer Referencia al álbum.
collectorId Integer Referencia al coleccionista.

2.8. PerformerPrize

Representa la relación entre un intérprete y un premio recibido, incluyendo la fecha de premiación.

Atributo Tipo de dato inferido Descripción
id Integer Identificador único del registro.
premiationDate Date Fecha de entrega del premio.
prizeId Integer Referencia al premio otorgado.
performerId Integer Referencia al intérprete premiado.

3. Tablas de asociación

3.1. PerformerAlbumsAlbum

Tabla de asociación que relaciona intérpretes con álbumes musicales.

Tabla: performer_albums_album

Atributo Tipo de dato inferido Descripción
performerId Integer Referencia al intérprete.
albumId Integer Referencia al álbum.

Cardinalidad: muchos a muchos. Un intérprete puede estar asociado a varios álbumes y un álbum puede tener varios intérpretes.

3.2. PerformerCollectorsCollector

Tabla de asociación que relaciona intérpretes con coleccionistas.

Tabla: performer_collectors_collector

Atributo Tipo de dato inferido Descripción
performerId Integer Referencia al intérprete.
collectorId Integer Referencia al coleccionista.

Cardinalidad: muchos a muchos. Un intérprete puede estar relacionado con varios coleccionistas y un coleccionista puede estar relacionado con varios intérpretes.

4. Relaciones entre entidades

Entidad de origen Entidad de destino Relación Implementación
Album Track Uno a muchos albumId en track
Album Comment Uno a muchos albumId en comment
Collector Comment Uno a muchos collectorId en comment
Album Collector Muchos a muchos collector_album
Performer Album Muchos a muchos performer_albums_album
Performer Collector Muchos a muchos performer_collectors_collector
Performer Prize Muchos a muchos performer_prize
⚠️ **GitHub.com Fallback** ⚠️