我想创建一个类似于Twitters“跟随”功能的功能,但想知道如何为类似的东西创建数据库结构。假设我们有一个这样的用户表:
id,用户名
然后是一个看起来像这样的帖子表:
id,userid,post,date
我想要做的是让用户关注其他用户,然后在流中获取他们的帖子。所以我猜应该有一张关注表。您可以在哪里插入哪个用户跟随哪个用户。但那我如何查询这个流?如果用户1跟随用户2和3.我想进行类似
的查询SELECT posts FROM $peopleIfollow ORDER BY date
但正如您所看到的上述示例不是有效查询,我如何收集“跟随”信息并查询结果?或者更多我应该考虑实现这一目标的结构是什么?应该将关注者放入数组中,是否可以在查询中使用数组?
答案 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语句可以大大改进,但对于你来说,这是一个快速而简单的想法。