Инструментът просто ви казва, че може да има няколко записа за комбинация uId-groupId. Пример:
uId groupId performacesScore 1 1 10 1 2 20 2 1 30 2 1 30 2 1 40 2 2 20
Сега си представете, че тези данни ви се показват и правите първите 2/1/30 в 2/1/50. Какво изявление за актуализиране може да изпрати инструментът на dbms?
update salesGroupLinked set performacesScore = 50
where uId = 2 and groupId = 1;
Това ще актуализира три записа вместо един.
update salesGroupLinked set performacesScore = 50
where uId = 2 and groupId = 1 and performacesScore = 30;
Това пак ще актуализира два записа вместо един.
Така че, за да актуализирате и изтриете правилно, трябва да кажете на dbms какво прави записите уникални. Има четири възможности:
- Ако никога не искате да актуализирате или изтривате единични записи, оставете го както е.
- Ако искате да можете да актуализирате и може да има само един запис за комбинация uId-groupId, тогава кажете на dbms и направете uId плюс groupId първичен ключ на вашата таблица.
- Ако искате да можете да актуализирате и може да има дубликати за комбинация uId-groupId, но комбинацията uId-groupId-performacesScore винаги ще бъде уникална, тогава направете тези три първичен ключ на таблицата.
- Ако искате да можете да актуализирате и може да има дубликати за всяка комбинация, дайте на таблицата друга колона за технически идентификатор и направете това първичен ключ.