2011-05-02 3 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 –

답변

4

이러한 종류의 테이블은 관계 또는 연관 테이블로 명명됩니다.

다 대다 관계를 제공하기 위해 2 개의 외래 키로 구성된 테이블. 당신의 마지막 예가 당신이 찾고있는 것입니다. 그 쉼표로 구분 된 것들은 최악의 연습입니다!

편집 : 몇 가지 추가 전략!

"isFriendOf"(사용자가 "FRIENDS"열에있는 경우)와 "hasFriend"(사용자가 "USERID"열에있는 경우)를 모두 가져 와서이 둘을 비교하려고합니다.

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

세부 사항? ; D

+0

감사와 같은 몇 가지 유사한 게시물이 있습니다! 어떻게 테이블 user로부터 user1id라는 이름으로 모든 친구를 user1id로부터 얻을 수 있습니까? – tox