El problema es que la generaba por phpmyadmin y en el apartado indices me salía como me añadía las relaciones y las claves primarias correctamente, pero investigando el código SQL veía algo raro:
Código:
Me refiero por raro, algo que no se si es correcto...-- -- Estructura de tabla para la tabla `se_descuenta` -- CREATE TABLE IF NOT EXISTS `se_descuenta` ( `activ` tinyint(3) unsigned NOT NULL, `oferta` tinyint(3) unsigned NOT NULL, `pvp` decimal(5,2) unsigned NOT NULL, PRIMARY KEY (`activ`,`oferta`), KEY `oferta` (`oferta`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- -- Restricciones para tablas volcadas -- -- -- Filtros para la tabla `se_descuenta` -- ALTER TABLE `se_descuenta` ADD CONSTRAINT `se_descuenta_ibfk_1` FOREIGN KEY (`oferta`) REFERENCES `oferta` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, ADD CONSTRAINT `se_descuenta_ibfk_2` FOREIGN KEY (`activ`) REFERENCES `actividad` (`id`) ON DELETE CASCADE ON UPDATE CASCADE;
Me añade solamente una clave después de la PK y después modifica la tabla añadiendo ambas claves foráneas.
Al ver esto, lo que hice fue crear mediante código la tabla de la siguiente forma:
Código:
De esta forma me generaba el mismo resultado, me refiero que al exportar la tabla para ver el código me mostraba el primero que posteo.CREATE TABLE IF NOT EXISTS `se_descuenta` ( `activ` tinyint(3) unsigned NOT NULL, `oferta` tinyint(3) unsigned NOT NULL, `pvp` decimal(5,2) unsigned NOT NULL, FOREIGN KEY (`oferta`) REFERENCES `oferta` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, FOREIGN KEY (`activ`) REFERENCES `actividad` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, PRIMARY KEY (`activ`,`oferta`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
No se si es correcto y es problema de PHPmyAdmin o es que estoy cometiendo algún error.
Espero vuestras respuestas! Un saludo.