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

Relaciones recíprocas, ¿es posible?

Estas en el tema de Relaciones recíprocas, ¿es posible? en el foro de Bases de Datos General en Foros del Web. Hola. Estoy intentando realizar una base de datos para una escuela. Tengo una tabla en que pongo datos de cada asignatura y otra de profesores ...
  #1 (permalink)  
Antiguo 07/08/2006, 07:24
 
Fecha de Ingreso: noviembre-2004
Mensajes: 2
Antigüedad: 19 años, 5 meses
Puntos: 0
Pregunta Relaciones recíprocas, ¿es posible?

Hola.

Estoy intentando realizar una base de datos para una escuela.

Tengo una tabla en que pongo datos de cada asignatura y otra de profesores en que va sus datos.

Mi problema llega cuando quiero reflejar estas relaciones entre profesores y asignaturas: un profesor puede impartir más de una asignatura y así mismo una asignatura puede ser impartida por más de un profesor...

No sé cómo relacionar esto...

¡¡Ayuda!!

Gracias, espero aprender con vosotros.

Trasgu
  #2 (permalink)  
Antiguo 07/08/2006, 09:25
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 4 meses
Puntos: 38
Creando una tabla relacion... con los codigos de profesor y asignatura

Código:
Create table MiTablaRelacion(
    idProfesor      MiTipoDeDato1
    IdAsignatura  MiTipoDeDato2
)
Seria bueno tambien crear una Foreing Key para cada campo con su respectivo catalogo (Profesores y Asignatura)....

Última edición por Andres95; 07/08/2006 a las 11:16
  #3 (permalink)  
Antiguo 07/08/2006, 14:02
Avatar de goc00  
Fecha de Ingreso: enero-2002
Ubicación: 000's DiMensiOn
Mensajes: 979
Antigüedad: 22 años, 3 meses
Puntos: 3
Tal como te dice Andres95 deberías crear una tabla relación, con los distintos id de profesor y asignatura (obviamente como FOREIGN KEY). Esto puesto que la relación que ideaste en tu base de datos es n:m, lo que hace muy dificil su programación. Una excelente solución es la ya planteada por Andres95.

Código:
CREATE TABLE Asignatura (
  idAsignatura TipoDeDato NOT NULL,
  CONSTRAINT xx_asignatura_pk PRIMARY KEY (idAsignatura)
);

CREATE TABLE Profesor (
  idProfesor TipoDeDato NOT NULL,
  CONSTRAINT xx_profesor_pk PRIMARY KEY (idProfesor)
);

CREATE TABLE RelacionProfAsig (
  idProfesor TipoDeDato,
  idAsignatura TipoDeDato,
  CONSTRAINT xx_relacionprofasig_fk1 FOREIGN KEY (idProfesor) REFERENCES Profesor (idProfesor),
  CONSTRAINT xx_relacionprofasig_fk2 FOREIGN KEY (idAsignatura) REFERENCES Asignatura (idAsignatura)
);

*** SINTAXIS DE ORACLE ***
__________________
GOC00 CominG soOn v2.0
CyA! & GooD LuCK...
  #4 (permalink)  
Antiguo 08/08/2006, 02:21
 
Fecha de Ingreso: noviembre-2004
Mensajes: 2
Antigüedad: 19 años, 5 meses
Puntos: 0
Muchas gracias

Gracias, creo que mi mayor problema era saber si sería posible hacerlo... y ya se cómo gracias a vosotros

Un saludo
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

SíEste tema le ha gustado a 2 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 08:58.