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

Error en Base de Datos

Estas en el tema de Error en Base de Datos en el foro de Mysql en Foros del Web. Buenos días compañeros actualmente me encuentro haciendo un proyecto escolar de ligas deportivas, el cual debe de tener jugador, entrenador, equipo. al momento de revisar ...
  #1 (permalink)  
Antiguo 08/11/2015, 09:44
 
Fecha de Ingreso: noviembre-2014
Ubicación: cuernavaca
Mensajes: 8
Antigüedad: 9 años, 5 meses
Puntos: 0
Error en Base de Datos

Buenos días compañeros actualmente me encuentro haciendo un proyecto escolar de ligas deportivas, el cual debe de tener jugador, entrenador, equipo. al momento de revisar me di cuenta que el entrenador y al jugador me deja agregarlos a dos equipos diferentes cosa que no debe de ser, espero puedan ayudarme con mi error.
Código MySQL:
Ver original
  1. CREATE DATABASE ligasDeportiva;
  2. USE ligasDeportiva;
  3.  
  4. CREATE TABLE Equipo(
  5.     idEquipo int(10) auto_increment,
  6.     nombre varchar(30) not null unique,
  7.     localidad varchar(25) not null,
  8.     estadio varchar(25) not null,
  9.     playera varchar(10) not null,
  10.     short varchar(10) not null,
  11.     medias varchar(10) not null,
  12.     PRIMARY KEY (idEquipo)
  13. );
  14.  
  15. ALTER TABLE Equipo ADD logo TEXT;
  16. INSERT INTO Equipo VALUES(null,'LOS FOSILES','Zacatepec','Cisneros','Blanco','Rojo','Rojo',NULL);
  17. INSERT INTO Equipo VALUES(null,'SIGLO XXI','Zacatepec','CORUCO DIAZ','Negro','negro','BLANCO',NULL);
  18. INSERT INTO Equipo VALUES(null,'FC TOLUCA','Zacatepec','CORUCO DIAZ','ROJO','ROJO','ROJO',NULL);
  19.  
  20. CREATE TABLE Entrenador(
  21.     idEntrenador int(10) auto_increment,
  22.     nombre varchar(30) not null,
  23.     apaterno varchar(30),
  24.     amaterno varchar(30),
  25.     foto TEXT,
  26.     PRIMARY KEY (idEntrenador)
  27. );
  28.  
  29. INSERT INTO entrenador VALUES (NULL,'Ricardo','La Golpe','cruz',NULL);
  30. INSERT INTO entrenador VALUES (NULL,'Piojo','Lopez','tintin',NULL);
  31. INSERT INTO entrenador VALUES (NULL,'La volpe','Raul','Perez',NULL);
  32.  
  33. CREATE TABLE Jugador(
  34.     idJugador int(10) auto_increment,
  35.     nombre varchar(30) not null,
  36.     apaterno varchar(30),
  37.     amaterno varchar(30),
  38.     foto TEXT,
  39.     PRIMARY KEY (idJugador)
  40. );
  41.  
  42. INSERT INTO jugador VALUES (NULL,'Jose','peREZ','Perez',NULL);
  43. INSERT INTO jugador VALUES (NULL,'Ricardo','Zamora','Salas',NULL);
  44. INSERT INTO jugador VALUES (NULL,'Raul','Garcia','Roble',NULL);
  45.  
  46. Idliga int(10) auto_increment,
  47. nombre varchar(20) not null,
  48. descripcion varchar(100),
  49. PRIMARY KEY (idLiga)
  50. );
  51.  
  52. INSERT INTO liga VALUES (null,'Liga MX','Liga de Primera Division en Mexico');
  53. INSERT INTO liga VALUES (null,'ASCENSO MX','Liga de SEGUNDA Division en Mexico');
  54.  
  55. CREATE TABLE registro(
  56. idCampeonato int(3) AUTO_INCREMENT NOT NULL,
  57. ligaDeportiva INT (10) not null,
  58. Equipo int(10) not null,
  59. Entrenador int(10),
  60. Jugador int(10),
  61. PRIMARY KEY (idCampeonato)
  62. );
  63.  
  64. ALTER TABLE registro ADD CONSTRAINT fk_registro_Judagores FOREIGN KEY (jugador) REFERENCES Jugador(idJugador);
  65. ALTER TABLE registro ADD CONSTRAINT fk_registro_Entrenador FOREIGN KEY (entrenador) REFERENCEs Entrenador(idEntrenador);
  66. ALTER TABLE registro ADD CONSTRAINT fk_registro_Equipo FOREIGN KEY (equipo) REFERENCES equipo(idEquipo);
  67. ALTER TABLE registro ADD CONSTRAINT fk_registro_liga FOREIGN  KEY (ligaDEportiva) REFERENCES liga (idLiga);
  68.  
  69. /* TABLA USUARIOS */
  70. CREATE TABLE usuario(
  71. idUser int(3) auto_increment,
  72. correo varchar(30) not null unique,
  73. pass BLOB not null,
  74. psecreta varchar(15) not null,
  75. PRIMARY KEY (idUser)
  76. );

Última edición por gnzsoloyo; 08/11/2015 a las 11:32
  #2 (permalink)  
Antiguo 08/11/2015, 11:42
Avatar de 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, 4 meses
Puntos: 2658
Respuesta: Error en Base de Datos

Por supuesto que te los dejará asociarlos a diferentes equipos. No le has puesto ninguna restricción a esa relación que lo impida, ademas de no tener ninguna tabla con el correcto diseño para administrar los jugadores de un equipo...

Para que se entienda: La misma tabla no puede administrar la vinculación entre Entrenador y Equipo, y además Jugador y Equipo. SOn relaciones diferenciadas, y una no es condición de la otra. Son entidades y tablas diferentes.
Por otro lado, si un jugador siempre jugará en un mismo equipo y jamás pasará a otro, la FK del equipo debería estar en Judagor. Pero si puede cambiar en el tiempo, debería existir una tabla relacional entre Equipo y Jugador, con un discrimiante de Fecha_Ingreso y Fecha_baja nulable.
Asimismo hay una tabla relacional entre Equipo y Entrenador, en iguales condiciones.
En ambos ca,so se debe crear un indice UNIQUE sobre la FK de cada caso, en conjuncion con Fecha_Alta.
De todos modos la parte del alta deberá ser validada antes del insert, ya que hay reglas que no se pueden cumplir con restricciones en las tablas, y esa es una.
¿Se entiende eso?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 09/11/2015, 20:41
 
Fecha de Ingreso: noviembre-2014
Ubicación: cuernavaca
Mensajes: 8
Antigüedad: 9 años, 5 meses
Puntos: 0
Respuesta: Error en Base de Datos

Gracias por la ayuda haz despejado mis ideas, empezaré a trabajar en ello

Etiquetas: tabla, usuarios
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 03:39.