我正在用 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/