Lo strumento ti dice semplicemente che possono esserci diverse voci per una combinazione uId-groupId. Esempio:
uId groupId performacesScore 1 1 10 1 2 20 2 1 30 2 1 30 2 1 40 2 2 20
Ora immagina che questi dati ti vengano mostrati e trasformi il primo 2/1/30 in 2/1/50. Quale dichiarazione di aggiornamento potrebbe inviare lo strumento al dbms?
update salesGroupLinked set performacesScore = 50
where uId = 2 and groupId = 1;
Questo aggiornerebbe tre record invece di uno.
update salesGroupLinked set performacesScore = 50
where uId = 2 and groupId = 1 and performacesScore = 30;
Ciò aggiornerebbe comunque due record anziché uno.
Quindi, per aggiornare ed eliminare correttamente, devi dire al dbms cosa rende unici i record. Ci sono quattro possibilità:
- Se non desideri mai aggiornare o eliminare singoli record, lascialo così com'è.
- Se vuoi essere in grado di aggiornare e può esserci solo una voce per una combinazione uId-groupId, allora dillo a dbms e rendi uId plus groupId la chiave primaria della tua tabella.
- Se vuoi essere in grado di aggiornare e ci possono essere duplicati per una combinazione uId-groupId, ma una combinazione uId-groupId-performacesScore sarà sempre univoca, allora rendi queste tre chiavi primarie della tabella.
- Se vuoi essere in grado di aggiornare e ci possono essere duplicati per qualsiasi combinazione, assegna alla tabella un'altra colonna per un ID tecnico e imposta questa come chiave primaria.