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

最大值:

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

我的用户数据库如下所示:ID,名称,电子邮件,密码和团队

如果无法理解,请询问。

非常感谢你。

此致Max

Bill Karwin:

这实际上是关系数据库的美。

您需要三个表:

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;

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章