Relação de amigos em mini rede social com Laravel

  • Autor Autor pa3lo022
  • Data de início Data de início
Tradução em andamento: em alguns minutos este tópico estará em português. Por enquanto, o conteúdo está no original em espanhol. Ver original
P

pa3lo022

Gamma
Usuário com poucas negociações! Use sempre o saldo do ForoBeta!
Hola a todos, me dan una mano con una relación que me esta volviendo loco, les cuento, estoy haciendo una mini red social, para un sitio que ya esta funcionando, la cosa es que estoy en la parte de agregar amigos pero... la cosa es como hago esa tabla, como les digo el sitio hace rato esta funcionando y la tabla user lo unico que es unique, es el Id y el Email, como hago para que en la tabla de friends, se relacione un user_id con otro user_id

Si de algo sirve, el sitio esta hecho en laravel

Bueno muchas gracias de ante mano.

saludos
 
Foi útil? Participe da conversa

Com sua conta grátis você pode responder, mandar mensagem privada ao autor e comprar com Saldo retido: o pagamento é liberado quando você recebe o combinado.

Leva 30 segundos · você volta a este tópico ao terminar
El problema es que tienes una relación circular... y una forma de resolver eso es con alias de tabla

persona(persona_id,otros_campos)
es_mi_amigo(persona_id,contacto_id) // la persona tiene muchos contactos

Luego:
Inserir CODE, HTML ou PHP:
SELECT * 
FROM persona, es_mi_amigo, persona contacto
WHERE  persona.persona_id = es_mi_amigo.persona_id
AND es_mi_amigo.contacto_id = contacto.persona_id

la tabla contacto no existe... es un alias de la tabla persona, un alias a nivel de query.

Otra opción es que hagas la tabla contacto como una copia de la tabla persona... con un trigger que copie a cada persona nueva y edite a cada persona editada.

Pero necesitas dos tablas de personas, ya sea por alias (mas sano) o por copia con trigger (mas entendible)
 
La opción más optima es que uses inner joins si es que las relaciones están explícitas
 
es sencillo, debe existir una tabla personas, luego una tabla amigos.

en la tabla amigos tienes tu

TABLE PERSON

id_person - PK
NAME
LASTNAME
AGE
ADDRESS
COUNTRY

TABLE FRIENDS

ID_AMISTAD - PK
ID_PER1 - FK
ID_PER2 - FK
STATUS - BOOLEAN


cuando 2 persona son amigos existe 1 registro en esa tabla con ambos PK DE LA TABLA PERSONA
 
Voltar
Topo