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.