इसके लिए पहले से ही बहुत सारे अच्छे उत्तर हैं जो "परिस्थिति पर निर्भर करता है" के लिए बहुत ज्यादा उबलते हैं, और मैं उन लोगों के लिए कुछ भी नहीं जोड़ सकता।
एक बात जिसका उल्लेख नहीं किया गया है, हालाँकि, मुझे लगता है कि इसका उल्लेख करने की आवश्यकता है, यह है कि आपको कभी भी उन प्राथमिक कुंजियों का पुन: उपयोग नहीं करना चाहिए जिन्हें किसी अनुक्रम या AUTO_INCREMENT प्रणाली द्वारा उत्पन्न किया गया है।
जब आप किसी ऐसे आइटम को हटाते हैं जिसे ऐसी प्रणाली द्वारा प्राथमिक कुंजी निर्दिष्ट किया गया था तो हटाए गए डेटा द्वारा छोड़ दिया गया प्राथमिक कुंजी कॉलम में अंतराल होगा। नए आइटम को जोड़ने के लिए उन अंतरालों को फिर से असाइन करने का एक बड़ा प्रलोभन है जैसे वे जोड़े जाते हैं, या इससे भी बदतर, मौजूदा डेटा को फेरबदल करने के लिए इसे एक नया आईडी देने के लिए फेरबदल करना है, लेकिन ऐसा करने से उन मुद्दों को जन्म दिया जाएगा जो आप चाहते हैं अगर आपने सिर्फ चाबियां छोड़ दी हैं तो कभी भी सौदा न करें।
मान लें कि आप पुन: उपभोग्य सामग्रियों के प्रबंधन के लिए प्रिंटर का डेटाबेस रख रहे हैं। प्रिंटर 13, एक पुराना लेजर प्रिंटर, आर्थिक मरम्मत से परे टूट जाता है ताकि आप इसे बाहर फेंक दें। इस बीच, एक असंबंधित कारण के लिए, कोई व्यक्ति गोदाम में बारकोड प्रिंटिंग करने के लिए एक नया थर्मल प्रिंटर ऑर्डर करता है, और प्रिंटर प्रिंटर के प्रतिस्थापन से पहले आने वाला होता है। 13. व्यवस्थापक उस नए प्रिंटर को डेटाबेस में लॉग इन करता है और क्योंकि 13 अब मुफ़्त है और आप आईडी का पुनर्चक्रण कर रहे हैं, नया थर्मल प्रिंटर अपनी आईडी के रूप में 13 आवंटित करता है।
अब कोई आपको बताता है कि प्रिंटर 13 स्याही से लगभग बाहर है। आपको याद है कि प्रिंटर 13 एक लेजर प्रिंटर है, ताकि आप इसे डेटाबेस में देखने में परेशान न करें, और आप एक टोनर कार्ट्रिज के लिए एक ऑर्डर देते हैं। केवल आपको वास्तव में एक थर्मल इंक पैक ऑर्डर करने की आवश्यकता थी क्योंकि प्रिंटर 13 अब लेजर प्रिंटर नहीं है। जब टोनर कार्ट्रिज आता है तो आप इसका उपयोग नहीं कर सकते क्योंकि यह प्रिंटर के लिए गलत इंक रिफिल है, आप किसी भी अधिक बार कोड को प्रिंट नहीं कर सकते हैं और आप डिस्पैच होने के इंतजार में किसी भी ऑर्डर को शिप नहीं कर सकते।
इससे भी बदतर, अगर आप प्रिंटर 13 को हटाते हैं और अंतराल को भरने के लिए उसके बाद आने वाले सभी प्रिंटर को फेरबदल करते हैं, तो क्या होता है? प्रिंटर 14 (कुछ पुराना पुराना डॉट मैट्रिक्स) प्रिंटर 13 बन जाता है, प्रिंटर 15 प्रिंटर 14 हो जाता है।
सभी प्रिंटर में लेबल होते हैं इसलिए उन्हें डेटाबेस से क्रॉस-रेफ़र किया जा सकता है, लेकिन अब सभी लेबल पुराने हो चुके हैं। आपको राउंड पर जाना होगा, व्यवसाय के प्रत्येक प्रिंटर का पता लगाना होगा (जो सैकड़ों में चल सकता है!) और उन्हें पुनः वितरित करें। यह शायद ही समय का एक प्रभावी उपयोग है। और यह भी एक त्रुटि-प्रवण प्रक्रिया है, और क्या होता है अगर यह सिर्फ कभी नहीं किया जाता है? कोई कहता है कि प्रिंटर 14 टूट गया है और उसे तुरंत ठीक करने की आवश्यकता है, इसलिए आप इसे देखते हैं और पाते हैं कि प्रिंटर 14 रिसेप्शन में एक इंकजेट प्रिंटर है। केवल इसलिए कि आपने चारों ओर से आईडी बदल दी है, यह वास्तव में डॉट मैट्रिक्स प्रिंटर है जिसे तत्काल ठीक करने की आवश्यकता है। समस्या को बुलावा देने वाले को लटका हुआ छोड़ दिया जाता है, जबकि रिसेप्शनिस्ट के पास एक टेक सपोर्ट वाला लड़का होता है जिसे उसने कभी प्रिंटर ठीक करने के लिए नहीं बुलाया था।
आपको एक ऑटो-इन्क्रीमेंट सिस्टम द्वारा सौंपी गई आईडी के बारे में सोचना चाहिए, वे अपरिवर्तनीय हैं और उनका पुन: उपयोग नहीं किया जा सकता है, भले ही वह चीज जो आईडी मौजूद होने का संकेत देती हो। कुछ लोग दावा करते हैं कि वे आईडी चलाने के बारे में चिंता नहीं करना चाहते हैं, लेकिन 32 बिट सिस्टम और हस्ताक्षरित आईडी के साथ, अभी भी 2 बिलियन या इतनी आईडी उपलब्ध हैं। यदि आप आईडी कॉलम को अहस्ताक्षरित कर सकते हैं तो यह दोगुना होकर 4 बिलियन हो जाता है, और 64 बिट सिस्टम पर उपलब्ध आईडी की संख्या शाब्दिक रूप से आकाश में सितारों की संख्या से अधिक है। आप आईडी से बाहर नहीं जा रहे हैं।