Alat ini hanya memberi tahu Anda bahwa mungkin ada beberapa entri untuk kombinasi uId-groupId. Contoh:
uId groupId performacesScore 1 1 10 1 2 20 2 1 30 2 1 30 2 1 40 2 2 20
Sekarang bayangkan data ini ditampilkan kepada Anda dan Anda membuat 2/1/30 pertama menjadi 2/1/50. Pernyataan pembaruan apa yang bisa dikirim alat ke dbms?
update salesGroupLinked set performacesScore = 50
where uId = 2 and groupId = 1;
Ini akan memperbarui tiga catatan, bukan satu.
update salesGroupLinked set performacesScore = 50
where uId = 2 and groupId = 1 and performacesScore = 30;
Ini masih akan memperbarui dua catatan, bukan satu.
Jadi untuk memperbarui dan menghapus dengan benar, Anda harus memberi tahu dbms apa yang membuat catatan itu unik. Ada empat kemungkinan:
- Jika Anda tidak ingin memperbarui atau menghapus satu catatan pun, biarkan apa adanya.
- Jika Anda ingin dapat memperbarui dan hanya ada satu entri untuk kombinasi uId-groupId, maka beri tahu dbms dan jadikan uId plus groupId sebagai kunci utama tabel Anda.
- Jika Anda ingin dapat memperbarui dan mungkin ada duplikat untuk kombinasi uId-groupId, tetapi kombinasi uId-groupId-performacesScore akan selalu unik, maka jadikan ketiganya sebagai kunci utama tabel.
- Jika Anda ingin dapat memperbarui dan mungkin ada duplikat untuk kombinasi apa pun, berikan tabel kolom lain untuk id teknis dan jadikan ini sebagai kunci utama.