Ver Mensaje Individual
  #2 (permalink)  
Antiguo 08/09/2012, 09:09
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Relación N:N entre 3 entidades

Cita:
Siendo así, tengo 3 entidades: Usuario, Curso, Roles y según mi lógica, otra para la relación N:N que tendría los campos: id, usuario_id, curso_id, rol_id.
No. Un Rol sólo puede estar relacionado con Usuario, porque sólo un usuario tiene un Rol. Un curso no posee Rol.
Los cursos no se relacionan con los roles, al menos no como atributo.
En todo caso, si un curso es para usuarios de un rol determinado, eso se incluye en la parametrización de los requisitos de inscripción, lo que se manejaría con otras tablas (si es que se usan para eso).
Cita:
Sucede que en mi aplicación, un usuario puede crear un curso pero a la vez puede agregar a otros usuarios a ese curso como colaboradores. Cada usuario en un curso tiene su rol (revisor ortográfico, generador de contenidos, limpiador de derechos de autor, etc.). Un usuario puede pertenecer a muchos cursos con un único rol en cada uno de ellos.
Lo que tienes allí es una relación entre el curso y un listado categorizado de roles que el curso requiere, cada uno de los cuales luego será cubierto por uno de los inscriptos.
Pero eso habla de que tienes por detrás una estructura más compleja:
Curso, Usuario, Usuario_Curso, Rol, Curso_Roles...
En definitiva, lo que tienes que ver es cómo se pueden construir las relaciones basadas en esquemas simples. No buscar agrupar relaciones que luego te compliquen el diseño y por ende el funcionamiento del sistema.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)