जैसा कि कोई है जो नियमित रूप से हमारे सॉफ़्टवेयर अपग्रेड के लिए ग्राहकों के लिए उत्पादन डेटाबेस को अपडेट करने से निपटता है, मैं आपको बताता हूं कि त्रुटियों को कम करने का सबसे अच्छा तरीका यह है कि जितना संभव हो उतना सीधा अपडेट किया जाए।
यदि आप विशिष्ट रिकॉर्ड के बजाय सभी रिकॉर्ड में बदलाव कर सकते हैं, तो यह बेहतर है।
दूसरे शब्दों में, यदि आपको आईडी के रिकॉर्ड की सूची दी गई है, जिसमें उनके राज्य को बदलने की आवश्यकता है, तो आपको खुद से पूछना चाहिए कि कार्यक्रम के संदर्भ में अपडेट क्यों किया जा रहा है। यह उन 10 रिकॉर्डों में से हो सकता है जिन्हें आपको अपडेट करने की आवश्यकता है, तालिका केवल है 10 तत्वों। इसलिए आपको अपने आप से पूछना चाहिए कि क्या वैचारिक रूप से आप जो कर रहे हैं वह सभी रिकॉर्ड की स्थिति को अपडेट कर रहा है।
यदि आप सम्मिलित कर सकते हैं, तो यह बेहतर है।
रिकॉर्ड जोड़ने का कार्य स्व-निहित है। इससे मेरा मतलब है कि रिकॉर्ड जोड़ने का केवल एक पक्ष प्रभाव है, और यह एक रिकॉर्ड का अस्तित्व है जो पहले मौजूद नहीं था। इसलिए जब तक आप एक रिकॉर्ड जोड़ रहे हैं जो वहाँ नहीं होना चाहिए, कोई समस्या नहीं होनी चाहिए।
यदि आप विलोपन से बच सकते हैं, तो यह बेहतर है।
यदि आप एक विलोपन कर रहे हैं, तो आप डेटा निकाल रहे हैं जो अन्यथा बैकअप के बिना अपरिवर्तनीय होगा। यदि संभव हो, तो डेटा को इस तरह से व्यवस्थित करने का प्रयास करें कि आप रिकॉर्ड को भौतिक रूप से हटाने के बजाय इसकी स्थिति को बदलकर अक्षम कर सकें। डेटा की अधिकता को एक विभाजन में रखा जा सकता है या इसे बाद के क्षण में पूरी तरह से हटा दिया जा सकता है, एक बार सुनिश्चित कर लें कि कोई समस्या नहीं है।
एक सुसंगत अद्यतन नीति रखें।
यदि आपको रिकॉर्ड अपडेट करने की आवश्यकता है, तो कई चीजों में से एक हो सकती है:
- आपका रिकॉर्ड मौजूद नहीं है
- आपका रिकॉर्ड मौजूद है लेकिन इसे पहले ही बदल दिया गया है।
- आपका रिकॉर्ड मौजूद है और परिवर्तन की आवश्यकता है।
कार्रवाई के पाठ्यक्रम को निर्धारित करने के लिए आपके पास एक नीति होनी चाहिए। सादगी की खातिर, आपको बोर्ड के अनुरूप होना चाहिए और इस नीति को इस प्रकार की किसी भी स्थिति में लागू करना चाहिए , न कि केवल विशिष्ट तालिकाओं के लिए। इससे बाद में डेटा पुनर्प्राप्त करने में सक्षम होना आसान हो जाता है। आम तौर पर, मेरी नीति स्क्रिप्ट को इस तरह से लिखना है, जैसा कि बाद में फिर से निष्पादित करने में सक्षम हो। यदि स्क्रिप्ट विफल हो जाती है, तो यह जानना अच्छा है कि आप उचित समायोजन कर सकते हैं और फिर से निष्पादित कर सकते हैं, हालांकि आप अपनी खुद की नीति चुनने के लिए स्वतंत्र हैं जो आपको सबसे अच्छा लगता है।
बैकअप
इसका कोई मतलब नहीं है कि आप किसी प्रोडक्शन के माहौल में कोई भी अपडेट करने से पहले बैकअप करने से मना करते हैं! हालांकि एक बैकअप के साथ, मैं इसे बैकअप का उपयोग करने में विफलता मानता हूं। सबसे खराब स्थिति में भी डेटा खोना एक संभावना नहीं हो सकती है।
निष्कर्ष
आप हमेशा इसे अपने तरीके से करने में सक्षम नहीं होंगे। टेबल स्कीमा आपके द्वारा निर्धारित होने की संभावना नहीं है, और जैसे कि इसका मतलब है कि आप जिस प्रकार के अपडेट की उम्मीद कर सकते हैं, वे जटिल और जोखिम दोनों होंगे। यद्यपि यदि आपके पास इस मामले में कोई भी बात है, तो यह इन बिंदुओं को ध्यान में रखने में मदद करता है क्योंकि वे किसी भी अपडेट को सीधा और महत्वपूर्ण जोखिम के बिना बनाते हैं।
सौभाग्य!