2010-08-19 5 views
1

Je ne sais pas comment procéder correctement.Comment ajouter des ID d'une table à une autre?

J'ai ma table d'utilisateurs avec environ 500 000 lignes déjà existantes. Je crée une fonctionnalité de playlist pour ma communauté musicale, j'ai donc une table appelée playlists. J'aimerais donner à chacun des 500 000 utilisateurs une liste de lecture par défaut intitulée Favoris.

Quelle est la meilleure façon de faire cela?

Dois-je appeler la table des utilisateurs et faire une boucle dans les données? A chaque boucle, j'insère le USERID dans le tableau des playlists? Y a-t-il un processus plus efficace?

+0

Si vous avez une tâche ponctuelle à faire, vous pouvez choisir ce que vous voulez, même un peu (raisonnablement) inefficace ... C'est une histoire différente si vous deviez le faire tout le temps ... – Palantir

+0

point, jamais pensé comme ça. Je suppose que j'avais juste peur que tirer sur toute la table des utilisateurs ralentisse le serveur de base de données pour quelques-uns. – pixel

+0

@pizel, Autorisez-vous les utilisateurs à avoir plusieurs playlists? –

Répondre

1

Vous devez simplement être en mesure d'exécuter la requête

UPDATE table_reference 
SET column = 'Favorites' 

Il n'y a pas la clause WHERE il appliquera à tout.

Modifier

Si vous prévoyez d'avoir la valeur par défaut soit « Favoris », vous pouvez définir la valeur par défaut pour le champ de sorte que vous ne courez pas ce problème nouveau.

0

Je suppose que vous permettre aux utilisateurs d'avoir plusieurs listes de lecture, et que les utilisateurs ne peuvent pas partager une playlist commune (c.-à-pas beaucoup à beaucoup, donc un seul utilisateur peut avoir le même PlayList)

Cela signifie que vous devrez dupliquer les favoris playList record pour chaque utilisateur, quelque chose comme:

INSERT into PlayLists(UserId, PlayListName) 
SELECT u.ID, 'Favorites' FROM Users u 

vous avez probablement aussi plusieurs à plusieurs tableau PlayListSong ou similaire qui relie des chansons à la playlist

Cela signifie également que vous devez copier tous les liens aussi bien - si vous pouvez montrer un peu plus au sujet de votre conception de table, les membres de SO peuvent vous aider également là.

Questions connexes