टूल आपको केवल यह बता रहा है कि uId-groupId संयोजन के लिए कई प्रविष्टियां हो सकती हैं। उदाहरण:
uId groupId performacesScore 1 1 10 1 2 20 2 1 30 2 1 30 2 1 40 2 2 20
अब कल्पना करें कि यह डेटा आपको दिखाया गया है और आप पहले 2/1/30 को 2/1/50 बनाते हैं। उपकरण dbms को कौन-सा अद्यतन विवरण भेज सकता है?
update salesGroupLinked set performacesScore = 50
where uId = 2 and groupId = 1;
यह एक के बजाय तीन रिकॉर्ड अपडेट करेगा।
update salesGroupLinked set performacesScore = 50
where uId = 2 and groupId = 1 and performacesScore = 30;
यह अब भी एक के बजाय दो रिकॉर्ड अपडेट करेगा।
तो ठीक से अपडेट करने और हटाने के लिए, आपको डीबीएमएस को बताना होगा कि रिकॉर्ड को अद्वितीय क्या बनाता है। चार संभावनाएं हैं:
- यदि आप कभी भी एकल रिकॉर्ड को अपडेट या हटाना नहीं चाहते हैं, तो इसे वैसे ही छोड़ दें।
- यदि आप अपडेट करने में सक्षम होना चाहते हैं और uId-groupId संयोजन के लिए केवल एक प्रविष्टि हो सकती है, तो dbms को ऐसा बताएं और uId plus groupId को अपनी तालिका की प्राथमिक कुंजी बनाएं।
- यदि आप अपडेट करने में सक्षम होना चाहते हैं और uId-groupId संयोजन के लिए डुप्लीकेट हो सकते हैं, लेकिन uId-groupId-performacesScore संयोजन हमेशा अद्वितीय होगा, तो इन तीनों को तालिका की प्राथमिक कुंजी बनाएं।
- यदि आप अपडेट करने में सक्षम होना चाहते हैं और किसी भी संयोजन के लिए डुप्लिकेट हो सकते हैं, तो तालिका को तकनीकी आईडी के लिए एक और कॉलम दें और इसे प्राथमिक कुंजी बनाएं।