Værktøjet fortæller dig blot, at der kan være flere poster for en uId-groupId kombination. Eksempel:
uId groupId performacesScore 1 1 10 1 2 20 2 1 30 2 1 30 2 1 40 2 2 20
Forestil dig nu, at disse data vises til dig, og du gør den første 2/1/30 til en 2/1/50. Hvilken opdateringserklæring kunne værktøjet sende til dbms?
update salesGroupLinked set performacesScore = 50
where uId = 2 and groupId = 1;
Dette ville opdatere tre poster i stedet for én.
update salesGroupLinked set performacesScore = 50
where uId = 2 and groupId = 1 and performacesScore = 30;
Dette ville stadig opdatere to poster i stedet for én.
Så for at kunne opdatere og slette korrekt, skal du fortælle dbms'en, hvad der gør posterne unikke. Der er fire muligheder:
- Hvis du aldrig vil opdatere eller slette enkelte poster, så lad det være som det er.
- Hvis du vil være i stand til at opdatere, og der kun kan være én indgang for en uId-groupId-kombination, så fortæl dbms det og gør uId plus groupId til den primære nøgle i din tabel.
- Hvis du ønsker at kunne opdatere, og der kan være dubletter for en uId-groupId-kombination, men en uId-groupId-performacesScore-kombination vil altid være unik, så gør disse tre til tabellens primære nøgle.
- Hvis du vil være i stand til at opdatere, og der kan være dubletter for enhver kombination, så giv tabellen endnu en kolonne for et teknisk id og gør dette til den primære nøgle.