如何为用户实现追随者,如twitter


How to implement followers for users, as in twitter

我有一个社交网络,我正在使用php和mysql。我正试图找出如何使每个用户的追随者。我应该在mysql中创建一个表,其中包含每个人的追随者列表,并为每个人创建一个表吗?这应该如何工作呢?我应该如何设置我的数据结构?请帮助。

Table `followers`
id
user_id
follows_id

如果一个用户跟随了另一个用户,将他们的id添加到这个表中,其中user_id是跟随的用户,follows_id是他跟随的用户。

你应该看看ERD。你是对的。您有一个包含用户的表。用户与用户之间存在多对多关系,因此创建一个包含该关系的表。它应该至少有两个字段;"user"answers"follower",并存储各自实体的id

这当然是一个多对多关系,我将使用复合主键。

我不使用显式的id列,而是将user_id和follower_id的组合列作为follower表的主键。这将避免任何条目被重复。

我还添加了一个外键约束,这样如果用户在用户表中被删除,那么所有的用户条目将从追随者表中删除;

create table followers
(
     user_id int unsigned not null, 
     follower_id int unsigned not null, 
     primary key(user_id,follower_id), 
     foreign key(user_id) references users(id) on delete cascade on update cascade
);