2010-08-19 5 views
1

Не знаете, как правильно это делать.Как добавить идентификаторы из одной таблицы в другую?

У меня есть таблица моих пользователей с примерно 500 000 уже существующих строк.

Я создаю функцию плейлиста для своего музыкального сообщества, поэтому у меня есть таблица под названием плейлистов. Я хотел бы дать каждому из 500,00 пользователей плейлист по умолчанию, названный «Избранное».

Каков наилучший способ для этого?

Должен ли я вызвать таблицу пользователей и просмотреть данные? На каждом цикле я вставляю USERID в таблицу плейлистов? Есть ли более эффективный процесс?

+0

Если у вас есть одноразовая задача, вы можете выбрать любой способ, который вы хотите, даже (разумно) неэффективный ... Это совсем другая история, если вам приходилось делать это все время ... – Palantir

+0

Good не думал об этом так. Наверное, я просто боялся, что вытащить всю таблицу пользователей замедлит работу сервера базы данных на несколько. – pixel

+0

@pizel, Вы разрешаете пользователям иметь несколько плейлистов –

ответ

1

Вы не должны просто быть в состоянии выполнить запрос

UPDATE table_reference 
SET column = 'Favorites' 

Там нет ИНЕКЕ поэтому он будет применять его ко всему.

Редактировать

Если вы планируете иметь значение по умолчанию будет «Избранное», вы можете установить значение по умолчанию для поля, так что вы снова не столкнуться с этой проблемой.

0

Я предполагаю, что позволяет пользователям иметь несколько списков воспроизведения, и что пользователи не могут совместно использовать общий список воспроизведения (т.е. не многие ко многим, так что только один пользователь может иметь тот же PlayList)

Это означает, что вы должны будете дублировать запись Избранное PlayList для каждого пользователя, что-то вроде:

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

вы, вероятно, также есть многие ко многим таблицы PlayListSong или аналогичный, который связывает песни в список воспроизведения

Это также будет означать что вам нужно скопировать все ссылки, а также - если вы можете немного подробнее узнать о своем дизайне таблиц, члены SO также помогут вам в этом.

Смежные вопросы