2011-04-19 65 views
3

我想知道你將如何工作一個PHP和MySQL的朋友系統? 我在想,在users表中會有一個標題爲friends的柱子,它可以用逗號隔開的其他用戶ID保存數據,
例如,1,3,56,3 - 然後爆炸這個和foreach數組?

這會起作用嗎?MySQL關係朋友計劃?

+1

是[12個字符] – Jakub 2011-04-19 17:41:01

+2

它的工作,但你不應該那樣做。爲友誼製作一張單獨的桌子。 – 2011-04-19 17:42:26

回答

4

不要將它作爲以逗號分隔的字符串進行操作,而是將每個朋友關係的user_friends表作爲記錄。逗號分隔的字符串不會有用的索引或可查詢。

+0

當我通過數據庫獲取朋友循環並檢查其中的任何一個是否爲當前用戶標識時,我會使用兩個列,比如'user1'和'user2'嗎? – Joshwaa 2011-04-19 17:45:27

6

這是一種方法。
您可能需要考慮爲每個朋友創建一個新行。

例如:

朋友ID:1 好友名稱:鮑勃

朋友ID:2 好友名稱:羅恩

朋友ID:3 好友名稱:喬

如果鮑勃與羅恩和喬都是朋友,那麼在朋友表中會有2條記錄

id user friend 
1 1  2 
2 1  3 

那麼,如果喬成了鮑勃朋友,但不是羅恩表將結束是

id user friend 
1 1  2 
2 1  3 
3 3  1 

這給你的靈活性在路上增加在更復雜的查詢。

0

重要的例子:

朋友1與朋友2 連接你要查找的USER_ID和friend_id找朋友1

的各界朋友