Narzędzie po prostu informuje, że może istnieć kilka wpisów dla kombinacji uId-groupId. Przykład:
uId groupId performacesScore 1 1 10 1 2 20 2 1 30 2 1 30 2 1 40 2 2 20
Teraz wyobraź sobie, że te dane są ci pokazywane, a pierwsze 2/1/30 to 2/1/50. Jaką instrukcję aktualizacji może wysłać narzędzie do dbms?
update salesGroupLinked set performacesScore = 50
where uId = 2 and groupId = 1;
Spowoduje to zaktualizowanie trzech rekordów zamiast jednego.
update salesGroupLinked set performacesScore = 50
where uId = 2 and groupId = 1 and performacesScore = 30;
To nadal aktualizuje dwa rekordy zamiast jednego.
Aby więc poprawnie aktualizować i usuwać, musisz powiedzieć dbms, co sprawia, że rekordy są unikalne. Istnieją cztery możliwości:
- Jeśli nigdy nie chcesz aktualizować ani usuwać pojedynczych rekordów, pozostaw to bez zmian.
- Jeśli chcesz mieć możliwość aktualizacji i może istnieć tylko jeden wpis dla kombinacji uId-groupId, poinformuj o tym dbms i ustaw uId plus groupId jako klucz podstawowy swojej tabeli.
- Jeśli chcesz mieć możliwość aktualizacji i mogą istnieć duplikaty dla kombinacji uId-groupId, ale kombinacja uId-groupId-performacesScore zawsze będzie unikalna, wtedy ustaw te trzy klucze jako klucz podstawowy tabeli.
- Jeśli chcesz mieć możliwość aktualizacji i mogą występować duplikaty dla dowolnej kombinacji, daj tabeli inną kolumnę na identyfikator techniczny i ustaw go jako klucz podstawowy.