Mysql
 sql >> Base de données >  >> RDS >> Mysql

créer une liste d'amis dans mysql

Si votre relation d'amitié est symétrique, vous pouvez soit stocker chaque paire dans un enregistrement séparé :

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

et interrogez tous les B les amis de aiment ça :

SELECT  friend2
FROM    friends
WHERE   friend1 = 'B'

ou stocker l'utilisateur avec le moins id dans le premier champ et celui avec le plus grand id dans le second :

friend1  friend2
A        B
A        C
B        D

et interrogez B les amis de aiment ça :

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

La première option est un peu plus efficace en MySQL , et c'est la seule option si votre relation d'amitié n'est pas symétrique (comme sur LiveJournal )

Voir cet article :