这实际上就是关系数据库的美妙之处。您需要三张表: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;