Historias
Slashboxes
Comentarios
 

Login Barrapunto

Login

[ Crear nueva cuenta ]

toci (4853)

toci
  (email no mostrado públicam.)

Down Kill Up Publicidad

Bitácora de toci (4853)

Miércoles, 07 de Marzo 2007

Ayuda con un modelo E-R

11:14h.
Barrapunto
Estoy tratando de diseñar una sencilla base de datos relacional para hacer un programita de gestión de discos (os prometo que no es una práctica de clase ni nada similar).

Casi todo lo tengo bien modelizado y normalizado, pero me atasco al tratar de relacionar las entidades DISCO, GRUPO y MÚSICO.

Se supone que un disco viene a nombre de un grupo (p. ej., Fontessa del Modern Jazz Quartet) o de un músico en concreto (p. ej., Kind of Blue, de Miles Davis).
En este último caso hay más músicos que intervien en el disco, pero el disco sólo viene a nombre de uno de ellos.

Por otra parte, un grupo se compone de varios músicos en un rango de años en concreto (p. ej.; Weather Report cambió bastante sus formaciones).

Al modelizar DISCO, quiero tener alguna relación para saber a nombre de quién está el disco (músico individual o grupo) y los músicos que tocan.

Estaba pensando en una entidad genérica ARTISTA, que puede ser un GRUPO o un MÚSICO (relación IS-A), pero me pierdo en el momento en que una de las dos entidades especializadas mantiene un relación con la otra (GRUPOS y MUSICOS: existe una relación n:m entre ellos).

También estaba planteando una relación ternaria GRUPO-DISCO-MÚSICO, pero veo que una de las claves (la correspondiente al grupo) podría ser NULL (discos grabados por un solista más músicos invitados, pero no a nombre de un grupo).

Si mantengo dos relaciones DISCOS_MUSICOS (n:m) y DISCOS_GRUPOS (n:m) me encuentro con que una de ellas tendrá datos y la otra no ¿?

Bueno, estoy algo perdido (y dormido). Se agradece alguna pista que me oriente.

Gracias por vuestra atención.

P.D.: consultando por ahí, parece que éste es un problema bastante clásico. Seguiré empollando.

Este hilo ha sido archivado. No pueden publicarse nuevos comentarios.
Mostrar opciones Umbral:
Y recuerda: Los comentarios que siguen pertenecen a las personas que los han enviado. No somos responsables de los mismos.
  • por toci (4853) el Jueves, 08 Marzo de 2007, 07:03h (#886252)
    ( Última bitácora: Domingo, 05 Diciembre de 2010, 22:01h )
    Ok, pero ...
    ¿Y si el disco viene a nombre de un grupo en vez de un artista?

    Podría tener una relación DISCO_ARTISTA y otra DISCO_GRUPO, pero serían excluyentes: un disco estaría en una o en otra, con lo que debería añadir un atributo a la entidad DISCO para indicar si está a nombre de un ARTISTA o de un GRUPO, y escribir código condicional para tratar esta circunstancia, puesto que los músicos que tocan en un disco los puedo recuperar de dos relaciones distintas: DISCO_ARTISTA ó GRUPO_ARTISTA.

    Estoy algo confuso, a ver si lo maduro más y repaso el libro de Elmasri.

    Gracias por tu pronta respuesta.

    [ Padre ]
  • 1 respuesta por debajo de tu umbral de lectura actual.