30/01/2005, 09:11
|
| | Fecha de Ingreso: julio-2003 Ubicación: España
Mensajes: 723
Antigüedad: 21 años, 5 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) |