Ver Mensaje Individual
  #8 (permalink)  
Antiguo 08/03/2010, 22:31
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: Error de MYSQL

El error que mencionas es simple:



Estás tratando de crear en la tabla subforo una FK apuntando a la PK de relacion, pero esa PK es de dos campos... y una FK se debe referenciar a toda la clave y no a una parte de ella.

Por lo demás...:
Código MySQL:
Ver original
  1. CREATE TABLE `proyectoforo`.`relacion` (
  2. `idtfororel` char(2) NOT NULL,
  3. PRIMARY KEY (`idtemrel`,`idtfororel`),
  4. KEY `FK_relacion_1` (`idtfororel`),
  5. CONSTRAINT `FK_relacion_1` FOREIGN KEY (`idtfororel`) REFERENCES `subforo` (`idforo`)
¿Por qué estás definiendo una PK de dos campos, si ya idtemrel es un campo que puede identificar el registro unívocamente?
Además, al usar un campo auto_increment como parte de una PK, corres el riesgo de que en el campo idtfororel puedan ingresarse datos repetidos, ya que una parte de la PK siempre variará, con lo que la integridad de la PK se mantendría.

La idea es que tu modelo de tabla permite esto:
Código MySQL:
Ver original
  1. `idtemrel` `idtfororel`
  2. 1               2
  3. 2               2
  4. 3               2
  5. 4               3
  6. 5               3

Finalmente: Estás tratando de poner una FK circular, con lo que jamás podrás ingresar datos en esas tablas...

Tengo la impresión de que el modelo de datos tiene defectos de diseño...

¿Podrías darnos más datos acerca del esquema de tablas y sus relaciones?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)