Foro de elhacker.net

Programación => Bases de Datos => Mensaje iniciado por: JonaLamper en 12 Noviembre 2016, 18:28 pm



Título: Duda con clave ajena (PhpMyAdmin)
Publicado por: JonaLamper en 12 Noviembre 2016, 18:28 pm
Buenas,

Tengo dos tablas usuarios, partidas y quisiera que mi tabla jugadores tuviese una clave compuesta formada por las dos claves primarias de usuarios y partidas. ¿Estaría bien así? Simplemente he creado una relación de cada clave y las he unido.

(http://thumbs.subefotos.com/b3af5af8c0e3bd061393c9b88c665f10o.jpg) (http://subefotos.com/ver/?b3af5af8c0e3bd061393c9b88c665f10o.jpg)

Lo que veo es que al mirar la estructura de la tabla jugadores, en el campo id_usuario me aparece una llave gris, ¿eso qué significa y por qué no me aparece también en el campo id_partida?

(http://thumbs.subefotos.com/2c84af385eb42243666f0571f67a8a29o.jpg) (http://subefotos.com/ver/?2c84af385eb42243666f0571f67a8a29o.png)


Posdata: si alguien sabe hacerlo con una sentencia SQL también me serviría ^^

Muchas gracias  ;D


Título: Re: Duda con clave ajena (PhpMyAdmin)
Publicado por: engel lex en 12 Noviembre 2016, 18:53 pm
no pueden haber 2 claves primarias... y la clave primaria no debería ser una ajena (a menos que sea unica y en ese caso no val la pena que hagas otra tabla)

recuerda que la clave primaria debe ser unica... un mismo usuario solo podrá ser un solo jugador

jugadores debe tener su identificador primario unico, y parte de su contenido son las claves ajenas


Título: Re: Duda con clave ajena (PhpMyAdmin)
Publicado por: JonaLamper en 12 Noviembre 2016, 19:09 pm
Vale, o sea que la tabla jugadores tendrá un id_jugadores y, además, tendrá 3 campos: id_usuario, id_partidas y rol (para relacionar qué usuarios están en qué partidas y qué roles tienen en cada partida)


Título: Re: Duda con clave ajena (PhpMyAdmin)
Publicado por: engel lex en 12 Noviembre 2016, 19:15 pm
si, recuerda que la clave primaria es unica, no se puede repetir... si pones partidas (que debe repetirse... ya creo que entiendes lo que pasa si colocas 2 claves unicas iguales)

tambien puedes usar directamente la tabla usuarios, usando un campo partida, allí el ide de la partida y si es -1, quiere decir que no está jugando