sql >> Base de Datos >  >> RDS >> Mysql

configurar una lista de amigos en mysql

Si su relación de amistad es simétrica, puede almacenar cada par en un registro separado:

friend1 friend2
A       B
B       A
A       C
B       D
C       B
D       B

y consulta todos los B A los amigos les gusta eso:

SELECT  friend2
FROM    friends
WHERE   friend1 = 'B'

o almacenar el usuario con el menor id en el primer campo y el de mayor id en el segundo:

friend1  friend2
A        B
A        C
B        D

y consulta B A los amigos les gusta eso:

SELECT  friend1
FROM    friends
WHERE   friend2 = 'B'
UNION ALL
SELECT  friend2
FROM    friends
WHERE   friend1 = 'B'

La primera opción es un poco más eficiente en MySQL , y esta es la única opción si su relación de amistad no es simétrica (como en LiveJournal )

Ver este artículo: