De tool vertelt je gewoon dat er meerdere vermeldingen kunnen zijn voor een uId-groupId-combinatie. Voorbeeld:
uId groupId performacesScore 1 1 10 1 2 20 2 1 30 2 1 30 2 1 40 2 2 20
Stel je nu voor dat deze gegevens aan je worden getoond en dat je van de eerste 1/1/30 een 2/1/50 maakt. Welke update-instructie kan de tool naar de dbms sturen?
update salesGroupLinked set performacesScore = 50
where uId = 2 and groupId = 1;
Dit zou drie records bijwerken in plaats van één.
update salesGroupLinked set performacesScore = 50
where uId = 2 and groupId = 1 and performacesScore = 30;
Dit zou nog steeds twee records bijwerken in plaats van één.
Dus om op de juiste manier bij te werken en te verwijderen, moet u de dbms vertellen wat de records uniek maakt. Er zijn vier mogelijkheden:
- Als u nooit afzonderlijke records wilt bijwerken of verwijderen, laat het dan zoals het is.
- Als je wilt kunnen updaten en er kan maar één item zijn voor een uId-groupId-combinatie, vertel dat dan aan de dbms en maak van uId plus groupId de primaire sleutel van je tabel.
- Als je wilt kunnen updaten en er kunnen duplicaten zijn voor een uId-groupId-combinatie, maar een uId-groupId-performacesScore-combinatie zal altijd uniek zijn, maak dan van deze drie de primaire sleutel van de tabel.
- Als je wilt kunnen updaten en er kunnen duplicaten zijn voor elke combinatie, geef de tabel dan een andere kolom voor een technische id en maak dit de primaire sleutel.