मेरे कई डेटाबेस में फ़ील्ड को varchars के रूप में परिभाषित किया गया है। अमेरिका में रहने और काम करने के बाद से यह बहुत समस्या नहीं रही है (जहाँ एकमात्र भाषा जो मौजूद है वह "अमेरिकन" है। अहम )
लगभग 5 वर्षों के लिए डेटाबेस के साथ काम करने के बाद, मैंने पाया है कि मैं अंततः varchar क्षेत्र की सीमित प्रकृति के साथ समस्याओं में चला जाता हूं और मुझे अपने खेतों को डेटा को nvarchars के रूप में संग्रहीत करने के लिए संशोधित करना होगा। तालिका को एक और अद्यतन करने के बाद, एक varchar क्षेत्र को एक nvarchar में परिवर्तित करने के बाद, मुझे सिर्फ यह सोचना था- हम अभी भी इसे इस तरह से क्यों कर रहे हैं? मैंने लंबे समय से अपने सभी पाठ फ़ील्ड को nvarchar में परिभाषित करने के लिए मानसिक निर्णय लिया है, बजाय varchar के, जो कि मैंने अपनी पाठ्य पुस्तकों से करना सीखा है जब मैं 10 साल पहले स्कूल में था।
यह 2011 का है और पिछले साल SQL सर्वर की एक नई रिलीज़ हुई थी। जब हम nvarchar का उपयोग कर सकते हैं तो हमें एक varchar डेटाटाइप का समर्थन क्यों जारी रखना चाहिए?
मुझे पता है कि अक्सर यह तर्क दिया जाता है कि नवरचर्स, "दो बार बड़े" के रूप में होते हैं, इसलिए भंडारण स्थान का उपयोग मैकरिंग वार्कर्स के लिए एक तर्क हो सकता है।
हालाँकि, आज के उपयोगकर्ता अपने UTV-8 को डिफॉल्ट UTF-16 के बजाय डेटा स्टोर करने के लिए परिभाषित कर सकते हैं यदि वे स्टोरेज स्पेस को बचाना चाहते हैं। यह 8-बिट एन्कोडिंग के लिए अनुमति देता है अगर यह मुख्य रूप से वांछनीय है, जबकि यह आश्वासन देते हुए कि दुर्लभ 2-8 बाइट चरित्र जो उनके DB में डाला जाता है, कुछ भी नहीं टूटेगा।
क्या मैं कुछ भूल रहा हूँ? क्या कोई अच्छा कारण है कि यह पिछले 15-20 वर्षों में नहीं बदला है?