2010-08-13 6 views
-1

소셜 네트워킹처럼 친구 연락처 목록을 저장할 수있는 데이터베이스를 만들고 싶습니다. mysql을 사용하여 데이터베이스 구조를 설계하고 친구의 연락처를 쉽게 검색 할 수있는 가장 좋은 방법은 무엇입니까?mysql을 사용하여 친구 연락처 목록 저장 및 검색

내가 이것에 대한 솔루션이 필요합니다, ME

+1

이것은 계층 적 데이터베이스 구조와 관련이없는 것처럼 보입니다. 비록 내가 뭔가를 놓친다면 나를 정정 해주십시오. – thomasrutter

답변

1

에게 heriarchical 데이터를 모델링하는 가장 좋은 방법을 도와하면 지원하기 위해 필요한 작업에 따라 달라집니다. 비교를 위해 Bill Karwin의 슬라이드 Models for heirarchical data을 읽는 것이 좋습니다. 각 접근법의 장단점을 요약 한 슬라이드 48를 참조하십시오.

그러나 나는 우정을 벼랑 구조로 간주하지 않을 것입니다. A는 B와 친구이고 B는 C와 친구이고 C는 A와 친구입니다. 대신 두 개의 열이있는 연락처 테이블을 만들 수 있습니다 : user_id와 friend_id는 "users"테이블의 외래 키입니다. 나는 B의 연락처 목록에 존재가 B가 A의 접촉도 의미하지 않습니다 있으리라 믿고있어 여기

SELECT friend_id 
FROM contact_list 
WHERE user_id = 1 

:

 
contact_list 
------------------ 
user_id friend_id 
------------------ 
1  2 
2  3 
3  1 

실행이 쿼리를 특정 사용자 ID의 연락처 목록을 검색하려면 명부.

+1

Karwin의 [SQL-Antipatterns] (http://pragprog.com/titles/bksqla/sql-antipatterns) 책은 훌륭한 독서 책입니다. 권장. – sarnold

+0

고맙습니다 .. 한 가지 더 해시 테이블 및 인덱싱을 사용하여 데이터베이스를 만들거나 디자인하는 방법을 알고 있습니까? – Deepu

관련 문제