Chiave conservata significa che 1 valore chiave va a 1 tabella. Fornire esempi contrari può aiutarti a capire meglio questo concetto.
Esempio 1:
La tua vista contiene aggregazione. Supponiamo di avere la seguente struttura di visualizzazione.
GroupID, AverageSalary
1 , 10000
2, 12000
3, 14000
In questo esempio: i tuoi valori provengono da più di una riga. Se si tenta di aggiornare AverageSalary in questa vista, il database non ha modo di trovare QUALI righe da aggiornare.
Esempio2: la
vista mostra i valori di più di una tabella. La tua vista mostra i valori della tabella PERSON e PERSON_CONTACT_DETAILS (ID, PersonID, ContactType, ContactValue).
Righe di esempio:
1,1,email,ddd@example.com
1,1,phone,898-98-99
Ti unisci a questa tabella 2 e mostri più informazioni business friendly in vista.
PersonId, Name, LastName, Phone1, Email1
Qui desideri aggiornare Phone1 e Email1. Ma il tuo ID personale viene mappato su due righe diverse, in questo esempio potrebbero esserci più righe. In questa vista, ancora una volta, il database non ha modo di trovare QUALI righe da aggiornare.
Nota: se si restringe la vista sql e si chiarisce che le righe da aggiornare potrebbero funzionare.
Questo due esempio sono i primi esempi che mi vengono in mente. Possono essere aumentati. Ma il concetto è chiaro. Il database deve mappare 1 valore chiave su 1 tabella. Ad esempio, hai uno a uno PERSON, PERSON_DETAILS tabelle. Qui la vista e l'aggiornamento funzioneranno poiché sono uno a uno.