“跟随”功能的数据库结构类似于twitter?

时间:2012-02-07 14:56:10

标签: php mysql

我想创建一个类似于Twitters“跟随”功能的功能,但想知道如何为类似的东西创建数据库结构。假设我们有一个这样的用户表:

  

id,用户名

然后是一个看起来像这样的帖子表:

  

id,userid,post,date

我想要做的是让用户关注其他用户,然后在流中获取他们的帖子。所以我猜应该有一张关注表。您可以在哪里插入哪个用户跟随哪个用户。但那我如何查询这个流?如果用户1跟随用户2和3.我想进行类似

的查询
SELECT posts FROM $peopleIfollow ORDER BY date

但正如您所看到的上述示例不是有效查询,我如何收集“跟随”信息并查询结果?或者更多我应该考虑实现这一目标的结构是什么?应该将关注者放入数组中,是否可以在查询中使用数组?

1 个答案:

答案 0 :(得分:2)

我能想到的快速简单的解决方案......

following(follower_id, following_id)

然后你会得到类似

的帖子
SELECT *
FROM post_table
LEFT JOIN following 
    ON following.following_id = post_table.userid
WHERE following.follower_id = ?
LIMIT 0, 20;

在哪里?是当前用户的ID。然后,这将加入表格并拉出关注者所关注的人的帖子。你也可以按日期订购。

这个SQL语句可以大大改进,但对于你来说,这是一个快速而简单的想法。

相关问题