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: