我想创建一个可以像社交网络一样存储朋友联系人列表的数据库,这是设计数据库结构的最佳方法,并且使用 mysql 轻松检索朋友的联系人。
我需要解决这个问题,帮帮我
我想创建一个可以像社交网络一样存储朋友联系人列表的数据库,这是设计数据库结构的最佳方法,并且使用 mysql 轻松检索朋友的联系人。
我需要解决这个问题,帮帮我
对分层数据建模的最佳方式取决于您需要支持哪些操作。我建议您阅读 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 的联系人列表中。