Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

¿Cómo puedo hacer esta relación?

Estas en el tema de ¿Cómo puedo hacer esta relación? en el foro de Bases de Datos General en Foros del Web. Tengo un problema a la hora de hacer una relación entre dos tablas. Expongo: Tengo una tabla Alumnos, donde se introducirán los alumnos de una ...
  #1 (permalink)  
Antiguo 24/04/2010, 13:03
 
Fecha de Ingreso: mayo-2007
Mensajes: 200
Antigüedad: 17 años
Puntos: 1
¿Cómo puedo hacer esta relación?

Tengo un problema a la hora de hacer una relación entre dos tablas. Expongo:

Tengo una tabla Alumnos, donde se introducirán los alumnos de una clase. Y una tabla Tareas, donde se definirán varias tareas. Ahora, cada alumno pude tener realizadas varias tareas. ¿Cómo construyo la tabla tareas para que realice esto?

Hasta donde yo he llegado (que alguien me corrija si está mal): Es una relación 1:n (1 alumno -> varias tareas).

T_Alumnos T_Tareas
___________________________________
|Id_Alumno | Nombre | Apellido | Id_Tareas |
--------------------------------------------------------
| 1 | Pepito | Perez | 1 | | 1 |
--------------------------------------------------------
(clave Primaria) (clave Foránea)

___________________
| Id_Tareas | Tar1 | Tar2|
--------------------------------
| 1 |Si | No |
--------------------------------
(clave Primaria)

¿Esto estaría bien? En la segunda tabla, los registros son las posibles convinaciones de tareas hechas.
¿Hay alguna manera más "optima" de hacerlo?


Gracias.
__________________
Blog: http://a-dream-of-dragon.blogspot.com
  #2 (permalink)  
Antiguo 24/04/2010, 14:50
 
Fecha de Ingreso: junio-2009
Ubicación: chiapas
Mensajes: 15
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: ¿Cómo puedo hacer esta relación?

recuerda que la llave foranea la lleva la tabla de muchos no la de uno y en la tabla tarea nada mas deve tener por registro una tarea esto te quedaria asi :

T_alumnos
--------------------------------------------------------
|id_alumno|nombre|apellido|

| 1 |pepito | garza |

T_tareas
--------------------------------------------------------
|id_tarea|nombre_tarea| realizada|id_alumno|
| 1 |investigacion | si | 1 |
| 2 |biagrafia hiltler| no | 1 |

pero recuerda que dependiendo tus tablas puede haber otra tabla si la relacion mchos a muchos, por ejemplo si las tareas la hacen en equipo, 1 tarea lo hacen varios alumnos y 1 alumnos puede hacer varias tareas eso ya queda de ti un saludo y espero que te sirva.
  #3 (permalink)  
Antiguo 24/04/2010, 16:32
 
Fecha de Ingreso: mayo-2007
Mensajes: 200
Antigüedad: 17 años
Puntos: 1
Respuesta: ¿Cómo puedo hacer esta relación?

Pero no termino de entenderlo. De esta forma, ¿cada tarea no tendría solo un alumno que la hace?, ya que cada tarea (tabla tareas) solo podría poner el Id_Alumno de un alumno ¿no?

Ponte en el caso que: Bibliografía de Hitler lo han realizado 3 alumnos, y dos de ellos la tienen terminada y el otro no. ¿Cómo represento eso?

Lo que busco es que, por ejemplo, accediendo al nombre del alumno, saber las tareas que tiene asignadas y cuales están terminadas para ese alumno.
__________________
Blog: http://a-dream-of-dragon.blogspot.com
  #4 (permalink)  
Antiguo 24/04/2010, 17:41
 
Fecha de Ingreso: junio-2009
Ubicación: chiapas
Mensajes: 15
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: ¿Cómo puedo hacer esta relación?

lo que pasa, es que deves definir bien tus tablas, la tabla alumnos tiene la lista de todos los alumnos y la tabla tareas registas a todas las tareas y quien la realizao.

mira desde mi punto de vista deveria haber otra tabla (que aguien me corrija si estoy mal) la relacion alumnos y tareas es de muchos a muchos, 1 alumno tiene muchas tareas, 1 tarea lo realizan muchos alumnos entonses entre las dos tablas deve haber una que se llame alumnos_tareas que tendria id_alumnos_tareas, id_alumno e id_tarea y asi cuando dejan una tarea creas en la tabla tarea una tarea luego en la tabla id_alumnos_tareas asignas el id_tarea y el id_alumno y asi ya sabes quien o queines hicieron la tarea.
espero haberme explicado.
  #5 (permalink)  
Antiguo 27/04/2010, 09:07
 
Fecha de Ingreso: mayo-2004
Mensajes: 63
Antigüedad: 20 años
Puntos: 0
Respuesta: ¿Cómo puedo hacer esta relación?

Buenas. Para mi la relacion entra las tablas "Alumnos" y "Tareas" ha de ser una relacion N:M (muchos a muchos).
Yo crearia una tabla intermedia ALUMNOS_TAREAS con el id_tarea y el id_alumno como claves ajenas.

Un alumno puede realizar 0,1 o n tareas.
Una tarea puede estar asignada a 0,1 o n alumnos.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:16.