Ver Mensaje Individual
  #3 (permalink)  
Antiguo 16/05/2010, 14:20
rosabelzd
 
Fecha de Ingreso: febrero-2010
Mensajes: 24
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: como hago esta consulta?

Hola gnzsoloyo

muchisimas gracias por tu ayuda, la verdad es que esto se me ha hecho un poco complicado.

te explico, uso MySQL y las tablas son InnoDB.
tengo una tabla anuncio y una tabla images donde almaceno varias imagenes para un anuncio, por eso es que las almaceno aparte del anuncio. la tabla advertisement_image es solo para relacionar las otras dos tablas a lahora de haer los selects. gracias a dios hasta ahora todo eso me ha funcionado bien.
tienes razon con lo de la existencia de los anuncios, si se borra el anuncio, no tienen sentido las imagenes. pero en este caso que o trabajo con FK como puedo utilizar la clausula "ON DELETE CASCADE"??? o existe algo parecido que me resuelva??

aca te dejo la declaracion SQL de las tablas por si te aclara mas.

gracias por tu ayuda.

Código:
CREATE TABLE `image` (
  `id_image` int(11) unsigned zerofill NOT NULL auto_increment,
  `image_location` varchar(100) NOT NULL default '../images/adv/default.jpg',
  `thumb_location` varchar(100) NOT NULL default '../images/thumbs_adv/default.gif',
  PRIMARY KEY  (`id_image`),
  UNIQUE KEY `id_image` (`id_image`),
  UNIQUE KEY `image_location` (`image_location`),
  UNIQUE KEY `thumb_location` (`thumb_location`)
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=latin1;

Código:
CREATE TABLE `advertisement_image` (
  `id_advertisement` int(11) unsigned zerofill NOT NULL,
  `id_image` int(11) unsigned zerofill NOT NULL,
  PRIMARY KEY  (`id_advertisement`,`id_image`),
  KEY `id_advertisement` (`id_advertisement`),
  KEY `id_image` (`id_image`),
  CONSTRAINT `advertisement_image_ibfk_1` FOREIGN KEY (`id_advertisement`) REFERENCES `advertisement` (`id_advertisement`),
  CONSTRAINT `advertisement_image_ibfk_2` FOREIGN KEY (`id_image`) REFERENCES `image` (`id_image`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Código:
CREATE TABLE `advertisement` (
  `id_advertisement` int(11) unsigned zerofill NOT NULL auto_increment,
  `adv_subject` text NOT NULL,
  `price` varchar(20) default NULL,
  `description` longtext,
  `address` text,
  `contact_email` varchar(50) default NULL,
  `contact_telephone` varchar(20) default NULL,
  `visitors_number` int(6) unsigned NOT NULL default '0',
  `publication_date` datetime NOT NULL
  PRIMARY KEY  (`id_advertisement`),
  UNIQUE KEY `id_advertisement` (`id_advertisement`)
) ENGINE=InnoDB AUTO_INCREMENT=60 DEFAULT CHARSET=latin1;