我有一個mysql數據庫。我有一張用戶表。我想回答「一個用戶是另一個用戶的朋友嗎?」的問題。這些是單向的朋友關係。我想我有兩個選擇,並且想要更高性能的解決方案:緊湊的存儲單向朋友關係的方式?
1)保留一張朋友關係表。兩列:
username | friend_username
--------------------------
mary john
mary steve
mary kate
...
回答友誼的問題只是選擇其中的兩列匹配計數的用戶名1 & 2.
2)再次與兩列的表:
username | friends_serialized
-----------------------------
mary john,steve,kate,
所以「friends_serialized」列包含一個(逗號)分隔的字符串。如果我想知道瑪麗是否與朋友在一起,我可以這樣做:
select count from xxx where username="mary" AND friends_serialized LIKE "%,steve,%"
(我不確定語法)。這對第一次實施來說真的會贏得什麼?它至少更加緊湊,當我需要向用戶發送一個朋友列表時,我可以將其讀入單個列中,而不是選擇所有匹配的列(如#1中所示)。
我的問題:我正在運行一個遊戲服務,用戶可以發送邀請到另一個玩遊戲。我想阻止陌生人發送非朋友邀請。因此,我希望能夠快速(並且緊湊地)確定向另一個用戶發送邀請的用戶是否真的是共同的朋友。
感謝
第二個可能是一個有點艱難的編輯朋友,如消除了與相同名字的朋友, – 2012-07-14 04:32:14
這migh是有用的將朋友的ID存儲在數據庫中並檢入這些ID。如果freind ID發現真的 – 2012-07-14 04:34:59