2011-05-02 68 views
0
//user: 
id 
name 
password

如何正確交友系統? 應該怎麼看錶友?與mysql的朋友系統

USERID | FRIENDID 
user1id | user2id, user3id 
user2id | user1id, user4id, user6id 
user3id 
user4id | user2id 

舉例點?

USERID | FRIENDIS 
user1id | user2id 
user1id | user3id 
user2id | user1id 
user2id | user4id 

etc 

? 謝謝

+0

您是否搜索過StackOverflow?有一些類似的帖子,如http://stackoverflow.com/questions/1977904/friend-of-a-friend-in-php-mysql – 2011-05-02 13:05:53

回答

4

這些類型的表被命名爲關係或關聯表。

一個由2個外鍵構成的表格,提供了多對多的關係。你的最後一個例子正是你要找的。這些逗號分隔的東西是最糟糕的做法!

編輯:一些額外的策略!

您希望同時獲得「isFriendOf」(用戶在您的專欄「朋友」)和「hasFriend」(用戶在您的專欄「USERID」中)並比較這兩者。

isFriendOf = "SELECT USERID FROM associationTable WHERE FRIEND LIKE 'userIamSearchingFor'"; 
hasFriend = "SELECT FRIEND FROM associationTable WHERE USERID LIKE 'userIamSearchingFor'"; 

更多詳情? ; D

+0

謝謝!以及如何可以從user1id與user表中的user1id名稱獲得所有朋友? – tox 2011-05-02 13:09:09