如何将MySQL中的一对一关系更改为一对多关系?

如何将MySQL中的一对一关系更改为一对多关系?,sql,mysql,one-to-many,lastinsertid,multiple-insert,Sql,Mysql,One To Many,Lastinsertid,Multiple Insert,我目前有一个用户表,其中包含Youtube OAuth令牌的一对一关系。然而,我现在想支持多个视频网站,并希望打破这种一对多的关系 我已设置了新表: 令牌-cols:id、站点、用户名(用户在Youtube上的用户名)、oauth_令牌、oauth_秘密 用户令牌-cols:id,用户id,令牌id 是否有一种方法可以从当前用户的表中选择到这些表中,以导入username、oauth_令牌和oauth_secret列,同时使用适当的id设置user_令牌表 在过去,我编写了一些简短的PHP脚本来

我目前有一个用户表,其中包含Youtube OAuth令牌的一对一关系。然而,我现在想支持多个视频网站,并希望打破这种一对多的关系

我已设置了新表:

令牌-cols:id、站点、用户名(用户在Youtube上的用户名)、oauth_令牌、oauth_秘密

用户令牌-cols:id,用户id,令牌id

是否有一种方法可以从当前用户的表中选择到这些表中,以导入username、oauth_令牌和oauth_secret列,同时使用适当的id设置user_令牌表


在过去,我编写了一些简短的PHP脚本来实现这一点,但我一直很好奇是否可以直接在MySQL中实现这一点。

签出。我认为这应该对您有所帮助。

一对多关系不需要关系表,您只需要令牌表中的用户id字段。这也使得餐桌上的火鸡更加容易:

insert into tokens (site, user_id, username, oauth_token, oauth_secret)
select site, user_id, username, oauth_token, oauth_secret
from users

(因为我不知道用户表中到底有什么以及字段名是什么,所以可能需要进行一些调整。)

哦,对了。我当时想我需要一个关系表,这让我很困惑。谢谢