Jika hubungan pertemanan Anda simetris, Anda dapat menyimpan setiap pasangan dalam catatan terpisah:
friend1 friend2
A B
B A
A C
B D
C B
D B
dan kueri semua B teman seperti itu:
SELECT friend2
FROM friends
WHERE friend1 = 'B'
atau simpan pengguna dengan id paling sedikit di bidang pertama dan dengan id terbesar yang kedua:
friend1 friend2
A B
A C
B D
dan kueri B teman seperti itu:
SELECT friend1
FROM friends
WHERE friend2 = 'B'
UNION ALL
SELECT friend2
FROM friends
WHERE friend1 = 'B'
Opsi pertama sedikit lebih efisien di MySQL , dan ini adalah satu-satunya pilihan jika hubungan pertemanan Anda tidak simetris (seperti di LiveJournal )
Lihat artikel ini: