हमारे वर्तमान डेटाबेस काम के हिस्से के रूप में, हम डेटाबेस अपडेट करने की प्रक्रिया से निपटने को देख रहे हैं।
एक बिंदु जो बार-बार लाया गया है, वह सिस्टम बनाम उपयोगकर्ता मानों से निपटने का है; हमारे प्रोजेक्ट उपयोगकर्ता और सिस्टम वैल्स में एक साथ संग्रहीत किया जाता है। उदाहरण के लिए...
हमारे पास टेम्पलेट्स की एक सूची है।
1,
2,
3,
इन्हें ऐप में एक enum (1, 2, 3) में मैप किया गया है
फिर एक उपयोगकर्ता आता है और जोड़ता है ...
4,
...तथा...
5,
फिर .. हम एक अपग्रेड जारी करते हैं .. और हमारी अपग्रेड स्क्रिप्ट के हिस्से के रूप में डालें ...
[6],
फिर !! ... हमें नए सिस्टम टेम्पलेट में एक बग मिलती है और इसे अपडेट करने की आवश्यकता है ... समस्या यह है कि कैसे? हम आईडी 6 का उपयोग करके रिकॉर्ड अपडेट नहीं कर सकते हैं (जैसा कि हमने इसे 9, या 999 के रूप में डाला होगा, इसलिए हमें किसी अन्य तंत्र का उपयोग करके रिकॉर्ड की पहचान करनी होगी)
तो, हम इसके लिए दो संभावित समाधान आ गए हैं।
लाल कोने में (गति) ....
हम बस 5000 (या कुछ अन्य मूल्य) पर उपयोगकर्ता आईडी शुरू करते हैं और 10000 (या कुछ अन्य मूल्य) पर परीक्षण डेटा शुरू करते हैं। यह हमें सिस्टम मानों में संशोधन करने और अगली आईडी सीमा की निचली सीमा तक परीक्षण करने की अनुमति देगा।
लाभ ... त्वरित और लागू करने में आसान है,
नुकसान ... मूल्यों से बाहर हो सकता है अगर हम एक बड़ी पर्याप्त सीमा का चयन नहीं करते हैं!
नीले कोने (स्केलेबिलिटी) में ...
हम स्टोर, सिस्टम और उपयोगकर्ता डेटा को अलग से स्टोर करते हैं, GUID को आईडी के रूप में उपयोग करते हैं और दृश्य का उपयोग करके दो सूचियों को मर्ज करते हैं।
लाभ ... स्केलेबल .. डीबी आकार के संबंध में कोई सीमा नहीं है।
नुकसान .. लागू करने के लिए और अधिक जटिल। (कई को एक अद्यतन करने योग्य विचार आदि)
मैं पहले विकल्प के लिए स्क्वायरली मोटा, लेकिन मुझे वापस करने के लिए कुछ बारूद की तलाश में!
क्या किसी के पास इन दृष्टिकोणों पर कोई विचार है, या यहां तक कि एक (ओं) जिसे हमने याद किया है?