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 關注
- 101 瀏覽
添加回答
舉報