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 关注
- 79 浏览
添加回答
举报