2010-02-27 20 views
1

J'ai actuellement une table d'utilisateur qui contient une relation un-à-un pour les jetons Youtube OAuth. Cependant, je souhaite maintenant prendre en charge plusieurs sites de vidéos et souhaiter mettre en place une relation un-à-plusieurs.Comment changer une relation one-to-one en relation one-to-many dans MySQL?

J'ai installé les nouvelles tables:

jetons - cols: id, site, nom d'utilisateur (le nom d'utilisateur de l'utilisateur sur Youtube), oauth_token, oauth_secret

user_tokens - cols: id, user_id, token_id

Est-il possible que je peux choisir de ma table de l'utilisateur actuel dans ces tables pour importer le nom d'utilisateur, et oauth_token colonnes oauth_secret tout en établissant la table user_tokens avec les ID appropriés?

Dans le passé, j'ai écrit des scripts PHP courts pour ce faire, mais j'ai toujours été curieux de savoir si je pouvais le faire directement dans MySQL.

Répondre

2

Vous n'avez pas besoin d'une table de relation pour une relation un-à-plusieurs, vous avez juste besoin d'un champ user_id dans la table de jetons. Cela rend également plus facile à poultate la table: (. Comme je ne sais pas exactement ce qui est dans votre table utilisateur et quels sont les noms de champs sont, il pourrait avoir besoin d'ajustement)

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

+0

Oh droite. Je me suis mélangé en pensant que j'avais besoin d'une table de relations. Merci –