我創造一種社會網站與朋友和我有用戶和朋友的關係表SQL朋友,關係單向/雙向系統
FRIENDS
id iduser idfriend
0 44 56
1 44 102
2 10 66
3 10 85
4 44 10
5 10 44
6 56 44
LOGIN
id jmeno email isonline
44 john [email protected] 1
10 joe [email protected] 1
185 mark [email protected] 0
當用戶從服務器他的朋友聯繫,他要求這在線和我用這個SQL命令爲
SELECT u.id,
jmeno,
email
FROM friends f
INNER JOIN login u
ON f.idfriend = u.id
WHERE f.iduser = 44
AND u.online =1
但我意識到,這是不是因爲當用戶44和用戶10希望成爲朋友,必須有既像關係的正確解決方案:
44 - 10
10 - 44
我只想從數據庫中的一行中選擇關係 所以在iduser和idfriend eithe中找到id。現在我在這裏使用這個單向關係sql。
此方法在存儲空間方面可能效率不高,但至少您可以通過「朋友」表中的單個字段「iduser」爲用戶找到朋友。如果每對朋友只有一行,那麼您還需要檢查「idfriend」,這將需要更多時間。 – athabaska