mysql - 一个简单社交网站的数据库设计

标签 mysql ruby-on-rails database database-design social-networking

我目前正在尝试为一个简单的社交网站设计数据库。我正在为我的数据库使用 MySQL。目前,我只有一个用户表。基本上,我希望用户能够添加 friend 并能够列出他们的 friend 。我正在考虑创建一个 friend 表,例​​如:

friends table
user_id
friend_id

每当有人添加 friend 时,它都会创建一个条目。我不确定我的方向是否正确。另一个问题,有没有办法检索所有二级 friend ?( friend 的 friend )任何帮助将不胜感激。非常感谢!

最佳答案

是的,您走在正确的道路上。

你可以通过加入 friends 表来检索 2nd degree friends

select t2.friend_id
from friends t1 
     inner join friends t2 on t1.friend_id = t2.user_id
where t1.user_id = ...

要考虑的一件事是交换性——如果 A 是 B 的 friend ,那么 B 是 A 的 friend 吗?

关于mysql - 一个简单社交网站的数据库设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12955390/

相关文章:

php - 识别正在重复的字段!

javascript - 使用 socket.io 排队

java - 当我使用 FCM 从 Ruby on Rails 后端发送推送通知时,Android 应用程序关闭

javascript - 无法使用 Angular 将文件上传到 Rails 服务器

android - 更新Assets文件夹的解决方法

database - 更新触发器以更新到同一个表

php - GROUP BY 的值的总和

php - 当使用 php 和 mysql 在用户输入中使用默认值和 null str 时,我如何使用统一的 sql 进行插入

ruby-on-rails - Rails Assets 在 MacOX Docker 上非常慢

ruby-on-rails - 我完成 rake db :migrate? 后如何在 ROR 3.0 中添加新列