2
안녕하세요, IM이 어떻게 상호적인 친구를 사귈 수 있는지 알아 내려고합니다.상호 친구 목록을 얻는 방법
메신저 현재이 문제를 생각하는 데 문제가 있습니다.
내가 "사용자"라는 테이블이 있고이 그것이 내가 테이블이 "우정" 불렀다
id | name
-----------
1 Kenny
2 Jack
3 Jimmy
4 Chris
5 Meg
6 Jake
7 Micheal
8 Dude
을 보는 방법과이는 모습입니다
user_a | user_b
----------------
4 1
7 5
8 1
2 4
2 1
5 2
1 6
1 7
user_a는 user_b를 전송 친구가되고 싶다는 요청 ... BAM 친구가 있습니다. 이제 인스턴트 메신저 사용자 2, 그리고 사용자 1 친구 목록으로 이동하면, 나는 우리가 공통적으로 가지고있는 친구를보고 싶습니다. 그게 올바른 SQL은 무엇입니까?
재미있는 점입니다. 사용자 1이 사용자 7과 친구가되는 것은 불가능하다고 가정합니다. 실제로 백엔드에서 해당 제한을 적용 할 수 있을지는 의문입니다. 아마도 user_a와 user_b를 합성 고유 키로 만드는 것이 최선의 방법 일 수 있습니다. 이 질문은 관련 질문이기 때문에 가능한 경우 누군가가 더 나은 해결책을 제안 할 수 있다면 좋을 것입니다. – user183037
남자, 정말 고마워요! – Kenny
@ user183037 이전과 같은 프로젝트를 만들었고, 내가 한 것은'user_a, user_b'에 기본 키를 만들고 친구 관계에 2 행 (둘 모두 조합)을 삽입하는 것이 었습니다. (user_a = @ user' 만 검색하면) 사용자의 친구를 검색하기 쉽고'user_b '에만 두 번째 색인이 필요하지 않습니다. –