为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
慕沐林林 2023-09-08 16:42:45
我想编写一个系统,用户可以使用该系统创建自己的团队,其他用户可以加入该团队。问题是,我不知道如何处理,如果用户创建一个团队,这个团队可以容纳无限的用户。我的用户数据库如下所示:id、姓名、电子邮件、密码和团队如果有什么不明白的地方,请提问。非常感谢。亲切的问候 麦克斯
查看完整描述

1 回答

?
牛魔王的故事

TA贡献1830条经验 获得超3个赞

这实际上就是关系数据库的美妙之处。


您需要三张表:


users: id, name, email, password -- no team reference here


teams: id, name


membership: user_id, team_id

中的每一行membership引用一个用户和一个团队。


membership当给定用户加入更多团队时,他们可以拥有多行。


给定的球队可以在 中拥有任意数量的行membership,表示该球队的球员。


使用关系数据库时,您需要考虑行集。


在评论中回复您的后续问题:


你可以这样插入:


INSERT INTO membership

SET 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;


查看完整回答
反对 回复 2023-09-08
  • 1 回答
  • 0 关注
  • 74 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信