Mysql
 sql >> Database >  >> RDS >> Mysql

creare una lista di amici in mysql

Se la tua relazione di amicizia è simmetrica, puoi archiviare ciascuna coppia in un record separato:

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

e interroga tutti i B amici di questo tipo:

SELECT  friend2
FROM    friends
WHERE   friend1 = 'B'

o archiviare l'utente con meno id nel primo campo e quello con id maggiore nel secondo:

friend1  friend2
A        B
A        C
B        D

e interroga B amici di questo tipo:

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

La prima opzione è un po' più efficiente in MySQL , e questa è l'unica opzione se la tua relazione di amicizia non è simmetrica (come su LiveJournal )

Vedi questo articolo: