Bueno pues les comento mi problema, y a la vez la conclusión a la que llegué a raíz del mismo.
El problema inicia en los índices de las tablas que tengo en mi portatil. Les creo el ejemplo a continuación.
Tengo dos tablas ( usuarios y contactos ), el cual la relación que puse es la de 1 Usuario puede tener N contactos.
Los campos de la tabla usuarios son ( id_usuario, nombre_usuario ) y los de la tabla contactos son ( id_contacto, id_usuario, nombre_contacto ), por supuesto el campo contactos.id_usuario es la llave foránea que está ligada a la tabla usuarios.
Pues bien, las relaciones están bien hechas, ahora hago las pruebas:
Inserto un primer usuario, por ejemplo:
Código:
Ok, aquí ya tenemos un usuario registrado y su id es 1. No existen mas usuarios.INSERT INTO usuarios ( usuarios.nombre_usuario ) VALUES ( 'Ronny' );
Luego inserto un par de contactos, por ejemplo:
Código:
Como pueden ver, los INSERT 1 y 2 se ejecutarán correctamente, y obviamente el INSERT 3 me dará un error porque no existe un usuario con el id 3.INSERT INTO contactos ( contactos.id_usuario, contactos.nombre_contacto ) VALUES ( 1, 'Pepe' ); INSERT INTO contactos ( contactos.id_usuario, contactos.nombre_contacto ) VALUES ( 1, 'Jose' ); INSERT INTO contactos ( contactos.id_usuario, contactos.nombre_contacto ) VALUES ( 3, 'Miguel' );
Pues bien, mi problema es el siguiente, supongamos que agrego otro usuario mas.
Código:
el cual se ejecuta correctamente, PERO el id del contacto Manuel es 4. Y deberia de ser 3 porque los unicos registros insertados fueron Pepe y Jose.INSERT INTO contactos ( contactos.id_usuario, contactos.nombre_contacto ) VALUES ( 1, 'Manuel' );
En otras palabras, se "brinca" el id, como si realmente lo estuviera insertando, y continua con el siguiente.
EL problema se me presenta unicamente en mi maquina ( Windows Vista Home Basic con XAMPP ).
He probado la misma tabla en dos servidores ( Windows XP con AppServ y en mi hosting, Debian ).
A qué se debe el problema, qué tengo que configurar?
Como uds ven el problema no afecta directamente la base de datos, pero me nació la duda.
Los datos del campo id_usuario son:
Código:
Traté de hacer lo más explícito posible mi problema, aún así estaré atento por cualquier duda, o falta de informacion.`id_contacto` smallint(2) NOT NULL AUTO_INCREMENT , PRIMARY KEY (`id_contacto`)
Un saludo.