我想编写一个系统,用户可以使用该系统创建自己的团队,其他用户可以加入该团队。问题是,我不知道如何处理,如果用户创建一个团队,这个团队可以容纳无限的用户。我的用户数据库如下所示: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;
- 1 回答
- 0 关注
- 74 浏览
添加回答
举报
0/150
提交
取消