Мне не понятно, почему вы предлагаете связь между обновлением записи в родительской таблице и ее зависимых элементов в дочерней таблице.Суть наличия отдельных таблиц заключается в том, что мы можем изменять неключевые столбцы в People
, не касаясь Likes
.
Когда дело доходит до обновления Likes
, существуют две разные бизнес-операции.Во-первых, когда Дейв говорит: «Я не имел в виду« апельсины », я хотел сказать, что мне нравится аранжировка цветов».Исправление ошибки будет использовать обновление:
update likes
set like = 'flower arranging'
where userid = 1
and like = 'oranges'
/
В предложении WHERE вместо этого может использоваться столбец LIKES.ID.
Другой случай, когда предпочтения фактически изменились.То есть, когда Дейв говорит: «Теперь мне 79, я больше не люблю женщин. У меня новые вкусы».Это может выглядеть так:
delete from likes
where userid = 1
and like = 'women'
/
insert into likes (userid, like)
values (1, 'dominoes')
/
insert into likes (userid, like)
values (1, 'Werthers Orignals')
/
Разница между этими двумя утверждениями заключается, прежде всего, в ясности.Мы могли бы реализовать второй набор операторов как обновление и одну вставку, но это могло бы ввести в заблуждение.Сохранение различия между значимыми изменениями данных и исправлением ошибок является полезной дисциплиной.Это особенно полезно, когда мы храним исторические записи и / или проверяем изменения.
Что, безусловно, является плохой идеей, так это удаление всех Likes
записей Дейва и их повторная вставка.Ваше приложение должно иметь возможность отслеживать, какие записи были изменены.