Ver Mensaje Individual
  #1 (permalink)  
Antiguo 25/04/2013, 15:29
Avatar de rgf1987
rgf1987
 
Fecha de Ingreso: diciembre-2012
Ubicación: Asturias
Mensajes: 269
Antigüedad: 12 años, 1 mes
Puntos: 22
¿¿ForeingKey??

Buenas,

comento el problema, tengo una clase Articulo y una clase Volumen

que las tengo planteadas de la siguiente manera:

Código MySQL:
Ver original
  1. CREATE TABLE volumenes (
  2. `idVolumen`INT auto_increment,
  3. `nombreVolumen` VARCHAR(50),
  4. PRIMARY KEY (`idVolumen`));


Código MySQL:
Ver original
  1. CREATE TABLE articulos (`idArticulo` INT NOT NULL auto_increment,
  2. `tituloArticulo` VARCHAR(50),
  3. `resumenArticulo` VARCHAR(500),
  4. `coautoresArticulo` VARCHAR(500),  
  5. `imagenArticulo` VARCHAR(50),
  6. `pdfArticulo` VARCHAR(200),
  7. `idVolumen` INT,
  8. PRIMARY KEY (`idArticulo`),
  9. FOREIGN KEY (`idVolumen`) REFERENCES volumenes(`idVolumen`) ON DELETE CASCADE);

El problema es que un Volumen puede tener muchos Articulos... por lo que la idea mas comun seria asignar la foreign key como tengo hecho, ¡pero!! puede ser que un Articulo no tenga ningun volumen entonces a la hora de crear un Articulo nuevo en la base de datos me surge un error

Código ERROR:
Ver original
  1. Cannot add or update a child row: a foreign key constraint fails

Es obligatorio hacer esta referencia? o simplemente puedo crear una lista de articulos y me despreocupo... cual seria la forma correcta de hacerlo??

Un saludo y gracias.