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

Duda diseño tabla amigos

Estas en el tema de Duda diseño tabla amigos en el foro de Mysql en Foros del Web. Buenas, Tengo una duda al crear una tabla que pretende llevar la relación de los amigos de cada usuario. Me imagino un tabla donde tenga ...
  #1 (permalink)  
Antiguo 31/07/2012, 14:29
Avatar de neodani  
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 1 mes
Puntos: 20
Duda diseño tabla amigos

Buenas,

Tengo una duda al crear una tabla que pretende llevar la relación de los amigos de cada usuario. Me imagino un tabla donde tenga el identificador del usuario ligado al identificador del amigo (que no deja de ser otro usuario de la web).

Podéis darme vuestra opinión sobre esta tabla amigos? haríais esta modelo?
Las dudas las tengo en que tanto el usuario como el amigo son usuarios de la web y por tanto no se si deben haber dos claves foraneas a la tabla usuarios y que estas a su vez fuesen primarias de la tabla amigos, o si véis otra manera de enfocarlo.



Muchas gracias de antemano
  #2 (permalink)  
Antiguo 03/08/2012, 14:35
Avatar de grails  
Fecha de Ingreso: febrero-2011
Mensajes: 44
Antigüedad: 13 años, 2 meses
Puntos: 6
Respuesta: Duda diseño tabla amigos

Cita:
Iniciado por neodani Ver Mensaje
Buenas,

Tengo una duda al crear una tabla que pretende llevar la relación de los amigos de cada usuario. Me imagino un tabla donde tenga el identificador del usuario ligado al identificador del amigo (que no deja de ser otro usuario de la web).

Podéis darme vuestra opinión sobre esta tabla amigos? haríais esta modelo?
Las dudas las tengo en que tanto el usuario como el amigo son usuarios de la web y por tanto no se si deben haber dos claves foraneas a la tabla usuarios y que estas a su vez fuesen primarias de la tabla amigos, o si véis otra manera de enfocarlo.



Muchas gracias de antemano

Hola,

Si los amigos son usuarios, es una relación many-to-many, por lo tanto necesitas una tabla intermedia para usuarios-usuarios.

Ademas el password veo que lo vas a meter en md5 con un VARCHAR de 32, yo lo meteria con un CHAR de 40 caracteres y usaria como has un sha1 (un poco mas seguro que md5), al ser seguro que el sha1 tiene una longitud fija de 40 caracteres, no hay razón para guardarlo como VARCHAR, ya que utilizas espacio innecesario en la base de datos al definir la columna.

Otra cosa, no necesitas 2 primary keys, necesitas 2 foreign keys apuntando a la tabla usuario, ademas necesitas 2 unique index, para que no se repita el e-mail ni el apodo, ya que estos datos deberían ser únicos.

Te adjunto el esquema como quedaría.




Saludos
  #3 (permalink)  
Antiguo 21/08/2012, 16:04
Avatar de neodani  
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 1 mes
Puntos: 20
Respuesta: Duda diseño tabla amigos

Buenas,

Gracias por los consejos de la contraseña. Yo aplico un hash, sha1 como dices, pero luego lo encripto en md5 reduciendo de 40 a los 32 caracteres. Yo lo hago al revés. si que podría quitar el varchar 32 y ponerlo char(32) pues en md5 todo tiene 32 caractares.

Si la relación many-to-many, tabla intermedia, la veia, sería la tabla llamada amigos en la imagen de mi post. Pero no sé porque crear una clave autonumerica (id) en la tabla de relación si las columnas usuario y usuario_amigo en tu imagen son el id PK de la tabla usuario y no se van a repetir.

Es lo que no veo de ese razonamiento y el mio.

Muchas gracias

Etiquetas: diseño, tabla
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 15:28.