Ver Mensaje Individual
  #1 (permalink)  
Antiguo 30/01/2005, 09:11
DjNelson
 
Fecha de Ingreso: julio-2003
Ubicación: España
Mensajes: 723
Antigüedad: 20 años, 9 meses
Puntos: 0
clave foránea de más de una tabla

Tengo varias tablas en mysql, todas tienen un campo identificador autonumérico.

Por ejemplo:

Tabla musica y software

Y una tabla comentarios.

El detalle está en que quiero permitir dejar un comentario sobre una canción o sobre una discoteca o sobre lo que sea, de manera que en la tabla comentarios voy a necesitar un campo que sea clave foránea de varias tablas...

Y no sé cómo hacer referencia a varios campos... lo que tengo es esto:


CREATE TABLE `comentarios` (
`identificador` int(9) NOT NULL auto_increment,
`ident` int(9) NOT NULL default '0',
`tabla` varchar(20) collate latin1_spanish_ci NOT NULL default '',
`comentario` varchar(255) collate latin1_spanish_ci NOT NULL default '',
PRIMARY KEY (`identificador`),
UNIQUE (`ident`),
FOREIGN KEY (`ident`) REFERENCES musica(`identificador`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_spanish_ci ;

ident va ha ser el identificador de las otras tablas (recordemos que todas tienen el mismo campo de clave primaria: identificador int(9) autonumerico)

Entonces dónde tengo ésto:

FOREIGN KEY (`ident`) REFERENCES musica(`identificador`) ON DELETE CASCADE ON UPDATE CASCADE

debería poner algo así:

FOREIGN KEY (`ident`) REFERENCES musica(`identificador`),software(`identificador`) ON DELETE CASCADE ON DELETE CASCADE

Pero el phpmyadmin devuelve un error diciendo que la sintaxis no es correcta.

Cómo se hace? o lo que es más importante: se puede hacer, no?

Saludos.
__________________
Solo nosotros podemos decidir qué hacer con el tiempo que se nos ha dado. (Gandalf)