Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Einrichten einer Freundesliste in mysql

Wenn Ihre Freundschaftsbeziehung symmetrisch ist, können Sie jedes Paar entweder in einem separaten Datensatz speichern:

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

und alle B abfragen Das gefällt den Freunden von :

SELECT  friend2
FROM    friends
WHERE   friend1 = 'B'

oder speichern Sie den Benutzer mit der kleinsten id im ersten Feld und das mit der größten id im zweiten:

friend1  friend2
A        B
A        C
B        D

und fragen Sie B ab Das gefällt den Freunden von :

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

Die erste Option ist in MySQL etwas effizienter , und dies ist die einzige Option, wenn Ihre Freundschaftsbeziehung nicht symmetrisch ist (wie bei LiveJournal )

Siehe diesen Artikel: