2010-08-13 73 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