猿问

为用户创建具有无限空间的组

我想编写一个系统,用户可以使用该系统创建自己的团队,其他用户可以加入该团队。问题是,我不知道如何处理,如果用户创建一个团队,这个团队可以容纳无限的用户。

我的用户数据库如下所示:id、姓名、电子邮件、密码和团队

如果有什么不明白的地方,请提问。

非常感谢。

亲切的问候 麦克斯


慕沐林林
浏览 75回答 1
1回答

牛魔王的故事

这实际上就是关系数据库的美妙之处。您需要三张表:users: id, name, email, password -- no team reference hereteams: id, namemembership: user_id, team_id中的每一行membership引用一个用户和一个团队。membership当给定用户加入更多团队时,他们可以拥有多行。给定的球队可以在 中拥有任意数量的行membership,表示该球队的球员。使用关系数据库时,您需要考虑行集。在评论中回复您的后续问题:你可以这样插入:INSERT INTO membershipSET user_id = (SELECT MAX(id) FROM users WHERE name = 'hpotter'),    team_id = (SELECT MAX(id) FROM teams WHERE name = 'gryffindor');或者你可以使用变量:SELECT MAX(id) INTO @user_id FROM users WHERE name = 'hpotter';SELECT MAX(id) INTO @team_id FROM teams WHERE name = 'gryffindor';INSERT INTO membership SET user_id = @user_id, team_id = @team_id;
随时随地看视频慕课网APP
我要回答