Ver Mensaje Individual
  #2 (permalink)  
Antiguo 27/02/2015, 14:43
Avatar de Tecan777
Tecan777
 
Fecha de Ingreso: febrero-2015
Ubicación: tehuaca,Puebla,Mexico
Mensajes: 18
Antigüedad: 9 años, 10 meses
Puntos: 1
Respuesta: llaves foraneas

he publicado otros temas y me han ayudado a resolverlos guiandome al resultadi, pero ahora al parecer nadie ha visto el tema o simplemente no les interesa...bueno...he tenido que recurrir a otros foros y han resolvido mis dudas, ahora les comento he cambiado la estructura un poco e implemente el uso de UNIQUE en lugar de las compuestas y he probado inserciones y todo esta bien.les dejo el codigo

Código SQL:
Ver original
  1. CREATE TABLE usuarios(
  2. id_usuario INT AUTO_INCREMENT NOT NULL PRIMARY KEY,
  3. login VARCHAR(20) NOT NULL,
  4. clave VARCHAR(16) NOT NULL,
  5. nivel VARCHAR(20) NOT NULL,
  6. UNIQUE (login)
  7. ) engine = innodb;
  8.  
  9. CREATE TABLE materia(
  10. id_materia INT AUTO_INCREMENT NOT NULL PRIMARY KEY,
  11. nombre VARCHAR(30) NOT NULL,
  12. duracion DATE NOT NULL,
  13. UNIQUE (nombre)
  14. ) engine = innodb;
  15.  
  16. FOREIGN KEY(editorial) REFERENCES editoriales(codigoeditorial) ON UPDATE cascade ON DELETE cascade
  17.  
  18. CREATE TABLE alumno(
  19. id_alumno VARCHAR(11) PRIMARY KEY ,
  20. nombre VARCHAR(20) NOT NULL,
  21. apellidos VARCHAR(40) NOT NULL,
  22. direccion VARCHAR(30) NOT NULL,
  23. telefono INT,
  24. email VARCHAR(40),
  25. login_alu VARCHAR(20) NOT NULL,
  26. clave_alu VARCHAR(16) NOT NULL,
  27. materia_alu VARCHAR(30) NOT NULL,
  28. FOREIGN KEY(login_alu) REFERENCES usuarios(login) ON UPDATE cascade ON DELETE cascade,
  29. FOREIGN KEY(materia_alu) REFERENCES materia(nombre) ON UPDATE cascade ON DELETE cascade
  30. ) engine = innodb;
  31.  
  32. CREATE TABLE docente(
  33. id_docente VARCHAR(11) PRIMARY KEY ,
  34. nombre VARCHAR(20) NOT NULL,
  35. apellidos VARCHAR(40) NOT NULL,
  36. direccion VARCHAR(30) NOT NULL,
  37. telefono INT,
  38. email VARCHAR(40),
  39. login_doc VARCHAR(20) NOT NULL,
  40. clave_doc VARCHAR(16) NOT NULL,
  41. materia_doc VARCHAR(30) NOT NULL,
  42. FOREIGN KEY(login_doc) REFERENCES usuarios(login) ON UPDATE cascade ON DELETE cascade,
  43. FOREIGN KEY(materia_doc) REFERENCES materia(nombre) ON UPDATE cascade ON DELETE cascade
  44. ) engine = innodb;


Ahora solo me necesito ua tabla llamada carga la cual contendra:
id_carga auto_increment es el numero de folio de la carga
alu---nombre del alumno referenciado al nombre de algun alumno registrado
doc--nombre de docente referenciado al nombre de un docente registrado
materia-nombre de materia registrada
fecha_inicio--cuando inicio el curso
calificacion int---para asignar un calificacion una vez terminado el curso...


¿Alguna idea de como se podria implementar?...¿esa tabla me obligaria a cambiar algun otro campo de las otras materias para referenciarla?.....escucho sugerencias, de antemano muchas gracias...

Última edición por gnzsoloyo; 28/02/2015 a las 18:15