-1

我想创建一个可以像社交网络一样存储朋友联系人列表的数据库,这是设计数据库结构的最佳方法,并且使用 mysql 轻松检索朋友的联系人。

我需要解决这个问题,帮帮我

4

1 回答 1

1

对分层数据建模的最佳方式取决于您需要支持哪些操作。我建议您阅读 Bill Karwin 的幻灯片Models for heirarchical data进行比较。请特别参阅幻灯片 48,其中总结了每种方法的优缺点。

但是,我不认为友谊是一种等级结构。通常会有循环:A 是 B 的朋友,B 是 C 的朋友,C 是 A 的朋友。相反,您可以创建一个包含两列的联系人表:user_id 和friend_id,它们是“用户”表的外键:

联系人列表
------------------
user_id 朋友 ID
------------------
1 2
2 3
3 1

要检索特定用户 ID 的联系人列表,请运行以下查询:

SELECT friend_id
FROM contact_list
WHERE user_id = 1

在这里,我假设 A 在 B 的联系人列表中并不意味着 B 也在 A 的联系人列表中。

于 2010-08-13T08:09:13.310 回答