php - 类似 Twitter 的关注系统

标签 php mysql twitter

我正在用 PHP 为学校开发一个 Twitter 克隆版,但我遇到了一个主要问题。我找不到实现追随者系统的方法。有一个用户表,我想添加一个字段来保存每个用户关注的所有用户的 ID。

我应该用逗号分隔 ID,然后在 PHP 中将它们分开吗?然后我需要从推文表中选择任何用户关注者发布的推文。有没有我可以使用的 SQL 命令?类似于

SELECT *
FROM tweets 
WHERE author='$followeduser'"

但是 $followeduser 是多个 id。

最佳答案

有一个这样的USER_MASTER

USER_ID (int)
USER_NAME(varchar(50))

像这样创建一个名为 USER_FOLLOWERS 的表

USER_FOLLOWER_ID // Auto increment-Primary Key for this record
USER_ID (int)  // foriegn key to UserId column in USER_MASTER table
FOLLOWER_ID (int)  // foriegn key to UserId column in USER_MASTER table

在第一列中存储UserId,在Follower_ID列中存储关注该用户的User的UserId。

所以你的数据看起来像这样

USER_ID    USER_NAME
--------------------------------------
1           SCOTT
2           JARED
3           MARC
4           ERIC

USER_FOLLOWER_ID    USER_ID   FOLLOWER_ID
--------------------------------------
1                    1          2
2                    1          3
3                    1          4
4                    2          1

所以这意味着,用户 Scott 有 3 个关注者,Jared、Marc 和 Eric。用户 JARED 有一个 Follower,即 SCOTT

要获取用户的关注者列表(例如:Scott (ID=1)),您可以在这两个表之间进行连接

  SELECT U. USER_ID, U.USER_NAME From USER_MASTER U
  INNER JOIN USER_FOLLOWERS UF ON U.USER_ID=UF.FOLLOWER_ID
  WHERE UF.USER_ID=1  // 1 is the ID of SCott

关于php - 类似 Twitter 的关注系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11434255/

相关文章:

iOS:在推文发布后查找特定推文的最快方法?

javascript - 如何使用 twitter api (js) 获取用户个人资料图片?

javascript - 下拉显示输出

php - 将 fetch all 数组拆分为单独的数组

Php 接收截断的 mysql 结果

php - 在 MySQL 中输入海量数据

php - 更改 ENUM 列并将值添加到 Laravel 中的该列

php - 移动jquery onclick不播放音频文件?

mysql - Yii2 按第三个表的值排序

javascript - 谷歌、推特认证