Es primera vez que hago este tipo de tablas en mysql y en realidad no se si funciona o no? La data base contiene una tabla con los datos de los usuarios registrados en una pagina web, en esta tabla hay un userId como primary key. En otra tabla (glada_category) guardare los nombres de las categorias de una galeria de imagen, esta tabla tiene un cat_id que el primary key con autoincremento, La siguiente tabla (glada_subcateg) es la que contiene los nombres de las subcategorias y usa como key subcat_id con autoincremento. Esta tabla debe recibir los los valores de la columna cat_id de la tabla category para relacionarlo con subcat_id, asi, si el administrador desea agregar una subcategoria en la categoria X , a travez de la id sabra la base de datos a que categoria relacionara la nueva subcategoria.
El problema esta en que he creado las tablas, todas InnoDB, y tambien las refrencias, pero al probarlas, directamente en SQLyog, a pesar de que creo nuevos registros en la tabla category, la tabla glada_subcateg no muestra ningun cambio, es decir, la columna que deberia recibir el id desde la tabla glada_category continua vacio.
Les coloco los scripts que utilize para crear las tablas, quizas haya un error en ellos:
Tabla de los usuarios:
Código:
Tablas de las categorias:CREATE TABLE `glada_users` ( `userId` int(5) unsigned NOT NULL auto_increment, `username` varchar(40) NOT NULL, `password` varchar(40) NOT NULL default '', `name` varchar(40) NOT NULL, `lastname` varchar(40) NOT NULL, `address` varchar(50) NOT NULL, `postcode` varchar(7) NOT NULL, `area` varchar(20) NOT NULL default '', `email` varchar(20) NOT NULL, `mobile` varchar(10) NOT NULL default '', `mobileModel` varchar(20) NOT NULL default '', `date` date default NULL, PRIMARY KEY (`userId`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8
Código:
y la tabla de las sybcategorias:CREATE TABLE `glada_category` ( `cat_id` int(10) unsigned NOT NULL auto_increment, `cat_name` varchar(45) NOT NULL, PRIMARY KEY (`cat_id`) ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=latin1 ROW_FORMAT=DYNAMIC COMMENT='InnoDB free: 11264 kB'
Código:
CREATE TABLE `glada_subcateg` ( `subcat_id` int(10) unsigned NOT NULL auto_increment, `subcat_name` varchar(45) NOT NULL, `cat_id` int(10) unsigned NOT NULL, PRIMARY KEY (`subcat_id`), KEY `cat_id` (`cat_id`), CONSTRAINT `cat_id` FOREIGN KEY (`cat_id`) REFERENCES `glada_category` (`cat_id`) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=latin1
Espero que me puedan ayudar con este problemita.
Saludos