हां, char
इसके लिए सही डेटा प्रकार है। अंगूठे का सामान्य नियम है: संदर्भ संदर्भ में हमेशा सबसे संकीर्ण (सबसे प्रतिबंधित) डेटा प्रकार का चयन करें। इसका अर्थ यह है कि अगर यह दुर्घटना से इनपुट प्राप्त करता है तो कोई भी अमान्य (या सीमा से बाहर) डेटा स्वीकार नहीं किया जाएगा, इस प्रकार आपका प्रोग्राम/डेटाबेस कम त्रुटि प्रवण हो जाएगा।
इसे किसी अन्य कोण से मानने के लिए: जब कोड में एक पूर्णांक मान का उपयोग करना चाहते हैं, तो क्या आप आकार का एक पूर्णांक सरणी बनाते हैं? बेशक नहीं, क्योंकि यह नौकरी करेगा, यह काफी अनावश्यक है। अर्थात की तुलना करें:
int[] value = new int[1] { 123 };
value[0] = 456;
रहे हैं:
int value = 123;
value = 456;
पहले, सरल बेतुका है, क्योंकि मुझे यकीन है कि आप देख रहा हूँ। निश्चित रूप से, यह डेटाबेस के संदर्भ में इतना स्पष्ट नहीं है (यदि आप string
डेटा प्रकार चुनते हैं तो उपयोग सरल है), लेकिन मुझे लगता है कि समानता पसंद के पीछे तर्क को समझाने में मदद करती है।
इसके अलावा, जब कोड में मानों में हेरफेर करने की बात आती है, तो आपको यह पता होना चाहिए कि अधिक एप्राइपिएट डेटा प्रकार (यानी char
) में फ़ील्ड होने से कोड में ऐप्रोपीली का उपयोग करने के लिए थोड़ा और सरल हो जाता है।
प्रदर्शन के संदर्भ में, मुझे कल्पना नहीं होगी कि string
का उपयोग करके आप कोई महत्वपूर्ण ओवरहेड देंगे। ठीक है, तो यह मामूली अधिक मेमोरी लेता है, लेकिन शायद यह कोई मुद्दा नहीं है। हालांकि मुझे लगता है कि अन्य कारणों से मैंने अभी प्रस्ताव दिया है कि आप char
चुनना चाहिए।
(पूरी तरह से स्पर्शशील, लेकिन एक सुझाव के रूप में, मैं एक बूलियन के रूप में लिंग को संग्रहित करने से बचूंगा - यह लिंगदर्शी, अंतरंग, और ट्रांसजेंडर लोगों के लिए अनजान है।) –
@ कॉनराड, कृपया प्रश्न को दोबारा पढ़ें। मैंने तीन अलग-अलग उदाहरण दिए: (1) लिंग (लिंग नहीं, बल्कि जैविक अर्थ में सेक्स), जो या तो एम या एफ हो सकता है; (2) मध्य प्रारंभिक, जो कोई भी पत्र हो सकता है; और (3) एक अनिर्धारित संकेतक, जो या तो वाई या एन हो सकता है। मेरे प्रश्न में लिंग पहचान से कोई लेना देना नहीं था। –
@ जॉन: पुन: (1): आप अभी भी जैविक रूप से अंतरंग लोगों को छोड़ रहे हैं। पुन: बाकी: हां, यही कारण है कि मैंने कहा कि यह टेंगेंशियल था। –