Сохранение ключа означает, что 1 значение ключа попадает в 1 таблицу. Предоставление контрпримеров может помочь вам лучше понять эту концепцию.
Example1:
Ваш вид содержит агрегацию. Предположим, у вас есть следующая структура представления.
GroupID, AverageSalary
1 , 10000
2, 12000
3, 14000
В этом примере: ваши значения поступают из нескольких строк. Если вы попытаетесь обновить AverageSalary в этом представлении, база данных не сможет найти, какие строки нужно обновить.
Пример 2:
Ваше представление показывает значения из более чем одной таблицы. В вашем представлении отображаются значения из таблицы PERSON и PERSON_CONTACT_DETAILS (ID, PersonID, ContactType, ContactValue).
Пример строки:
1,1,email,ddd@example.com
1,1,phone,898-98-99
Вы присоединяетесь к этой 2 таблице и показываете больше информации для бизнеса.
PersonId, Имя, Фамилия, Телефон1, Электронная почта1
Здесь вы хотели бы обновить Phone1 и Email1. Но ваш personID отображается в две разные строки, в этом примере может быть больше строк. В этом представлении, опять же, база данных не может найти какие строки для обновления.
Примечание. Если вы ограничиваете свой вид sql и четко указываете, какие строки для обновления могут работать.
Этот два примера - первые примеры, которые приходят мне в голову. Они могут быть увеличены. Но концепция понятна. База данных должна отобразить 1 значение ключа на 1 таблицу. Например, у вас есть таблицы PERSON, PERSON_DETAILS один на один. Здесь просмотр и обновление будут работать, так как это один в один.