2013-10-24 2 views
1

Группа 8 содержит пользователей: 1, 2, 3обновление списка пользователей в группе: UPDATE или DELETE + INSERT

user_id | group_id 
------------------ 
    1 | 8 
------------------ 
    2 | 8 
------------------ 
    3 | 8 
------------------ 

нужно обновить список пользователей для группы 8.

Так группа 8 должна содержать пользователей : 1, 5, 7

user_id | group_id 
------------------ 
    1 | 8 
------------------ 
    5 | 8 
------------------ 
    7 | 8 
------------------ 

Для этого конкретного случая и структуры стола, что является лучшим способом сделать это?

«ОБНОВЛЕНИЕ» обновляет существующую запись (записи) в таблице. Итак, я думаю, что «ОБНОВЛЕНИЕ» НЕ будет работать для меня, верно?

Должен ли я удалить (с помощью «DELETE») всех пользователей из группы 8 и вставить (с «INSERT INTO») новый обновленный список пользователей?

EDIT: Список пользователей перед обновлением и список пользователей после обновления являются произвольными и динамическими, могут быть не такими, как в моем примере.

+0

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

ответ

2

Да, удаление и вставка - это путь. Вы удаляете пользователей 2 и 3, затем добавляете пользователей 5 и 7. Вам не нужно прикасаться к пользователю 1.

Обновление не является хорошим, потому что концептуально вы удаляете пользователя из группы и присоединяетесь к другому. Вы не превращаете одного пользователя в другого.

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