मुझे पहले स्पष्ट करना होगा कि स्थिति स्तंभ तालिका में रिकॉर्ड (पंक्ति) द्वारा दर्शाए गए वास्तविक-विश्व आइटम की स्थिति को प्रतिबिंबित करने का इरादा नहीं है । बल्कि, यह रिकॉर्ड की स्थिति दिखाने का इरादा है।
यह ऐक्टिव / इनएक्टिव या क्लिष्ट जैसे जटिल हो सकता है जैसे एप्रूव्ड / डिलीट / लॉक / पेंडिंग / रिजेक्टेड इत्यादि। स्टेटस को बूलियन / शॉर्ट पूर्णांक कॉलम या सिंगल-कैरेक्टर कॉलम पर मैपिंग के साथ true
/ 1
= एक्टिव या एक्टिव किया जा सकता है। A
= स्वीकृत है।
मूल विचार है कि एप्लिकेशन में रीसायकल बिन / ट्रैश-जैसे रिकवरी समर्थन होना चाहिए (और इसे डेटाबेस में अनुकरण करें)। यदि कोई फ्रंट-एंड GUI या अन्य इंटरफ़ेस है जो उपयोगकर्ता को "डिलीट" रिकॉर्ड करने दे सकता है, तो यह वास्तव में टेबल में रिकॉर्ड को डिलीट नहीं करता है, लेकिन बस रिकॉर्ड स्टेटस को Inactive या डिलीट कर देता है। जब इंटरफ़ेस रिकॉर्ड प्राप्त करता है, तो यह हमेशा रिकॉर्ड प्राप्त करता है जो केवल इस स्थिति से मेल खाता है कि स्थिति सक्रिय या स्वीकृत है।
यदि उपयोगकर्ता कोई गलती करता है और "हटाए गए" रिकॉर्ड (उपयोगकर्ता के परिप्रेक्ष्य में) को पुनर्प्राप्त करने की आवश्यकता है, तो डीबीए आसानी से रिकॉर्ड को सक्रिय या स्वीकृत होने के लिए वापस पैच कर सकता है, जो बैकअप की खोज करने और मूल रिकॉर्ड को खोजने की उम्मीद से बेहतर होगा वहाँ। या इंटरफ़ेस स्वयं उपयोगकर्ता को हटाए गए रिकॉर्ड को एक अलग दृश्य में देखने दे सकता है, और उन्हें आवश्यकतानुसार पुनर्स्थापित कर सकता है, या उन्हें स्थायी रूप से हटा भी सकता है (वास्तविक रिकॉर्ड को हटाकर)।
मेरे सवाल:
- यह एक अच्छा अभ्यास है, या एक बुरा अभ्यास है?
- क्या यह डेटा के सामान्यीकरण को प्रभावित करता है?
- संभावित नुकसान क्या हैं?
- क्या समान लक्ष्य प्राप्त करने की कोई वैकल्पिक विधि है? (नोट देखें)
- आप डेटाबेस को केवल एक निश्चित स्थिति के लिए डेटा पर अद्वितीय अवरोधों को लागू कर सकते हैं (लेकिन अन्य स्थितियों के लिए किसी भी संख्या में डुप्लिकेट की अनुमति दें)?
- डेटाबेस, "रीसायकल बिन" जैसी सुविधा या टेबल-ट्रैकिंग / रिकवरी मूल रूप से क्यों नहीं प्रदान करते हैं, इसलिए हम इंटरफेस को बिना चिंता के वास्तविक रिकॉर्ड को नष्ट करने दे सकते हैं?
नोट: मैंने एक अलग इतिहास तालिका बनाए रखने के बारे में पढ़ा है लेकिन यह भंडारण के मामले में बदतर है और इससे ट्रिगर्स उत्पन्न होते हैं और ट्रिगर्स को ट्रैक की गई तालिका स्कीमा के साथ अद्यतित रखा जाता है।