2010-08-13 71 views
-1

我想創建一個數據庫,可以像社交網絡一樣存儲朋友聯繫人列表 什麼是設計數據庫結構的最佳方式,並且易於使用mysql檢索朋友的聯繫人。使用mysql存儲和檢索朋友聯繫人列表

我需要這個解決方案,幫我

+1

這似乎沒有任何關係分層數據庫結構。儘管如果我錯過了某些東西,請糾正我。 – thomasrutter 2010-08-13 08:10:43

回答

1

模型heriarchical數據的最佳方式取決於你需要支持哪些操作。我建議你閱讀Bill Karwin的幻燈片Models for heirarchical data進行比較。特別參見幻燈片48,其中總結了每種方法的優缺點。

但是,我不認爲友誼是一種偏側結構。通常會有循環:A是B的朋友,B是C的朋友,C是A的朋友。相反,您可以創建一個包含兩列的聯繫人表:user_id和friend_id,這兩列是「users」表中的外鍵:

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

要檢索特定用戶ID的聯繫人列表運行此查詢:

SELECT friend_id 
FROM contact_list 
WHERE user_id = 1 

在這裏,我假設B的聯繫列表上的存在並不意味着B也對A的接觸名單。

+1

Karwin的[SQL-Antipatterns](http://pragprog.com/titles/bksqla/sql-antipatterns)書很棒。強力推薦。 – sarnold 2010-08-13 08:14:17

+0

謝謝..還有一件事你知道如何使用哈希表和索引來創建或設計數據庫 – Deepu 2010-08-16 07:17:09