L'outil vous indique simplement qu'il peut y avoir plusieurs entrées pour une combinaison uId-groupId. Exemple :
uId groupId performacesScore 1 1 10 1 2 20 2 1 30 2 1 30 2 1 40 2 2 20
Imaginez maintenant que ces données vous sont présentées et que vous faites du premier 2/1/30 un 2/1/50. Quelle déclaration de mise à jour l'outil pourrait-il envoyer au dbms ?
update salesGroupLinked set performacesScore = 50
where uId = 2 and groupId = 1;
Cela mettrait à jour trois enregistrements au lieu d'un.
update salesGroupLinked set performacesScore = 50
where uId = 2 and groupId = 1 and performacesScore = 30;
Cela mettrait toujours à jour deux enregistrements au lieu d'un.
Ainsi, pour mettre à jour et supprimer correctement, vous devez indiquer au dbms ce qui rend les enregistrements uniques. Il y a quatre possibilités :
- Si vous ne souhaitez jamais mettre à jour ou supprimer des enregistrements individuels, laissez-le tel quel.
- Si vous voulez pouvoir mettre à jour et qu'il ne peut y avoir qu'une seule entrée pour une combinaison uId-groupId, dites-le au dbms et faites de uId plus groupId la clé primaire de votre table.
- Si vous voulez pouvoir mettre à jour et qu'il peut y avoir des doublons pour une combinaison uId-groupId, mais qu'une combinaison uId-groupId-performacesScore sera toujours unique, alors faites de ces trois la clé primaire de la table.
- Si vous voulez pouvoir mettre à jour et qu'il peut y avoir des doublons pour n'importe quelle combinaison, donnez au tableau une autre colonne pour un identifiant technique et faites-en la clé primaire.