Me ayudan con una relación por favor :(

pa3lo022

Gamma
Verificación en dos pasos desactivada
Verificado por Whatsapp
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
24 Nov 2014
Mensajes
376
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
 

fabgonber

VIP
Zeta
Verificado
Verificación en dos pasos activada
Verificado por Whatsapp
¡Ha verificado su Paypal!
Suscripción a IA
Desde
4 Abr 2019
Mensajes
1.994
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:
Insertar CODE, HTML o 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)
 
Upvote 0

CarlosRR

Delta
Programador
Verificación en dos pasos activada
Verificado por Whatsapp
¡Ha verificado su Paypal!
Desde
31 Ago 2013
Mensajes
598
La opción más optima es que uses inner joins si es que las relaciones están explícitas
 
Upvote 0

Fedde157

Gamma
Verificación en dos pasos desactivada
Verificado por Whatsapp
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
7 Dic 2015
Mensajes
348
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
 
Upvote 0

¡Regístrate y comienza a ganar!

Beneficios

  • Gana dinero por participar
  • Gana dinero por recomendarnos
  • Descubre ofertas de empleo diariamente
  • Negocios seguros
  • ¡Información premium y más!

Acceder

¿Ya tienes una cuenta? Accede aquí

Arriba