Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Clave compuesta y id autoincrementado

Estas en el tema de Clave compuesta y id autoincrementado en el foro de Mysql en Foros del Web. Buenas, estoy haciendo un pequeño proyecto y tengo un problema. Tengo 3 tablas enviados recibidos usuarios Contenido tabla usuarios: idusuario (clave primaria) pass nombre apellidos ...
  #1 (permalink)  
Antiguo 21/02/2012, 17:16
 
Fecha de Ingreso: junio-2008
Mensajes: 27
Antigüedad: 14 años, 2 meses
Puntos: 0
Clave compuesta y id autoincrementado

Buenas, estoy haciendo un pequeño proyecto y tengo un problema.

Tengo 3 tablas

enviados
recibidos
usuarios

Contenido tabla usuarios:

idusuario (clave primaria)
pass
nombre
apellidos

Contenido tabla recibidos:

idususario
idcorreo
[...]

Contenido tabla enviados:

idususario
idcorreo
[...]

El idusuario de la tabla usuarios tiene que estar relacionado con el campo idusuario de las otras dos tablas y el idcorreo de cada tabla se tiene que autoincrementar.

El problema está en que phpmyadmin no me permite hacerlo, me dice que sólo se puede hacer con una clave simple, no de 2 campos.

La idea es que al buscar los correos de un usuario saque todos según ese idusuario y los pueda ordenar por idcorreo.

No sé si me he explicado bien.

Muchas gracias
  #2 (permalink)  
Antiguo 21/02/2012, 17:57
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 14 años, 8 meses
Puntos: 2658
Respuesta: Clave compuesta y id autoincrementado

Cita:
La idea es que al buscar los correos de un usuario saque todos según ese idusuario y los pueda ordenar por idcorreo.
Primero: Para hacer eso no necesitas integrar el IDUSUARIO a otro campo. Simplemente usas ORDER BY en la consulta.
Segundo: Crear una clave primaria compuesta usando un campo autoincremental puede generar problemas de consistencia, porque permitiría, por ejemplo, usar dos veces o más el mismo numero en el autoincremental, mientras el otro campo tenga valores distintos, o viceversa.
Tercero: Es imposible que phpMyadmin no te permita hacer una PK de más de un campo, porque eso no es un privilegio de phpMyadmin, sino de MySQL, y MySQL si lo permite. En todo caso debes estar creando mal la clave o usando campos que no cumplen con los requisitos de una PK, sea porque ya hay datos en la tabla, o porque estás poniendo en esos campos atributos que no son válidos para una PK.
Postea la estructura de las tablas (el CREATE TABLE, no una descripción), y veremos.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 26/02/2012, 12:00
 
Fecha de Ingreso: junio-2008
Mensajes: 27
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Clave compuesta y id autoincrementado

Buenas, ya lo tengo solucionado, borré las tablas para hacerlo todo de nuevo.

Para hacer la parte que quería usé, era muy sencillo.

ALTER TABLE recibidos ADD CONSTRAINT PK_idcorreo
PRIMARY KEY (idcorreo);

ALTER TABLE recibidos ADD CONSTRAINT FK_idusuario_recibidos
FOREIGN KEY (idusuario) REFERENCES usuarios (idusuario);

Gracias por tu atención gnzsoloyo

Etiquetas: clave, compuesta, php, tabla, campos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:38.