我有一个使用php和mysql制作的社交网络。我试图弄清楚如何为每个用户制作粉丝。我应该在mysql中创建一个表,其中包含每个人的关注者列表,并为他们关注的每个人创建一个表吗?这怎么办?我应该如何设置我的数据结构?请帮忙。
答案 0 :(得分:4)
Table `followers`
id
user_id
follows_id
如果用户关注其他用户,请将其ID添加到此表中,其中user_id
是后续用户,follows_id
是他正在关注的用户。
答案 1 :(得分:2)
你应该研究ERD。你是对的。你有一个用户表。用户与用户具有多对多关系,因此请创建包含该关系的表。它至少应该有两个字段; “user”和“follower”,并存储相应实体的ID。
答案 2 :(得分:0)
这肯定是多对多的关系,我会使用复合主键。
而不是使用显式id列,我将使user_id和follower_id的组合列成为关注者表的主键。这样可以避免任何条目被复制。
我还添加了一个外键约束,这样如果在users表中删除了用户,那么将从followers表中删除所有用户条目;
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
);