एसक्यूएल में बूलियन मानों को नल के बिना बिट डेटा प्रकारों के रूप में संग्रहीत करने के कारण हैं? मैं उन्हें अक्सर 0 और 1 के मानों को सीमित करने के लिए बाधाओं के बिना पूर्णांक के रूप में संग्रहीत करता हूं, और बिना किसी बाधा के टी/एफ, ट्रू/फाल्स, हां/नहीं, आदि जैसी चीजों के तारों के रूप में। क्या उन्हें बिट्स के रूप में स्टोर करना बेहतर नहीं है और अतिरिक्त बाधाओं के बारे में चिंता करने की ज़रूरत नहीं है? मुझे यहां क्या समझ नहीं आ रहा है?एसक्यूएल में बूलियन मानों को बिट डेटा प्रकारों के रूप में संग्रहीत करने के कारण हैं?
उत्तर
मैं हमेशा छोटी से छोटी डेटा प्रकार मैं इस स्टोर करने के लिए कर सकते हैं के साथ रहना चाहते हैं लापता नहीं कर रहे हैं।
- SQLServer: बीआईटी
- ओरेकल: संख्या (1) (या PL/SQL में बूलियन)
- MySQL: Oracle की बूलियन: TINYINT
संपादित करें (iirc बूलियन नक्शे यह स्वचालित रूप से करने के लिए) पीएल/एसक्यूएल केवल टेबल परिभाषा नहीं है। इसे प्रतिबिंबित करने के लिए अद्यतन उत्तर।
एक कारण यह है कि लोगों को थोड़ा सा पता नहीं है या लगता है कि y/n प्रारूपण के लिए आसान है। अन्य कारण यह है कि कभी-कभी आप सोचते हैं: हम्म शायद समय के साथ यह एक बूल क्षेत्र से अधिक होगा। और आप इसे सिर्फ मामले में int बनाते हैं।
आप कुछ भी :)
क्या आम तौर पर सड़क के नीचे होता है कि किसी को एक शायद हाँ करने के लिए भी जोड़ने के लिए और कोई, अगर आप थोड़ा तो अब आप
TINYINT अगर आप tinyint शुरू करने के लिए किया था अपने सभी कोड बदलने के लिए चाहता है तब आप नहीं करते ..... मेरा मानना है कि यह आपको लगता है कि
जब मैं डेटाबेस में बूलियन चाहता हूं तो मैं हमेशा बिट डेटा प्रकार का उपयोग करता हूं। एसक्यूएल में वे पूर्ण हो सकते हैं। लेकिन जब आप अपना प्रोग्राम चलाते हैं तो आपको यह समझना होगा कि एक बूल (उदा। सी #) एक मूल्य प्रकार है जो इस मामले में पूर्ण नहीं हो सकता है। आपको System.DBNull मान से तुलना करना होगा।
क्या आप सिर्फ वैरिएबल को Nullable
इसे एसक्यूएल में एक पूर्ण नहीं बनाते ....... टेबल ब्ला (उत्तर बिट शून्य नहीं) – SQLMenace
समस्या यह है कि ADO.NET समर्थन करता है या कुछ अन्य डेटा एक्सेस फ्रेमवर्क। अगर यह Nullable
हम हमेशा डेटा को थोड़ा सा स्टोर करते हैं, यह छोटा है, और अधिक महत्वपूर्ण बात यह है कि यह इस मामले के लिए डिज़ाइन किया गया है।
हमारे पास ऐसे समय थे जहां अंतिम उपयोगकर्ता डेटा के साथ सीधे काम करने जा रहा था, और उनके लिए, हां/नहीं या वाई/एन अधिक पठनीय था। इस मामले में, हमने अभी एक ऐसा दृश्य बनाया है जो मित्रवत डेटा प्रदर्शन को प्रतिबिंबित करता है।
मेरी पहली परियोजना में आने के बाद मेरी आखिरी 2 नौकरियां उन्होंने मुझे वापस जाने और सभी 0 के 'एन' और 1 से 'टी' में बदलने के लिए दोनों का एक ही कारण था। "हम कभी याद नहीं कर सकते कि कौन सा है" मैंने सोचा 0 = झूठी 101 कंप्यूटिंग कर रहा था लेकिन स्पष्ट रूप से यह जानना बहुत आम बात है। या शायद यह एक संकेत है कि मैं काम करने के लिए अच्छी जगह नहीं चुन रहा हूं। – dwidel
मैं देख रहा हूँ उन्हें अक्सर 0 और 1 के लिए मूल्यों को सीमित करने की कमी के बिना पूर्णांकों के रूप में जमा है, और के रूप में बातें टी/एफ, सही/गलत, हाँ/नहीं, आदि, की तरह फिर से बिना साथ तार बाधाओं। क्या यह उन्हें बिट्स के रूप में स्टोर करने के लिए बेहतर नहीं है और को अतिरिक्त बाधाओं के बारे में चिंता करने की ज़रूरत नहीं है?
हाँ!
मुझे यहां क्या याद आ रही है?
वास्तव में यह होना चाहिए "मैं यहां क्या नहीं खो रहा हूं?" और जवाब होगा: सामान्य ज्ञान।
बीआईटी आमतौर पर बुलेटियन मूल्यों को संग्रहीत करने के लिए उपयोग की जाने वाली डेटाटाइप है। सिर्फ इसलिए कि अगर बीआईटी 1 है तो यह सच है और 0 फिर झूठी है। यह इतना आसान है।
मुझे लगता है कि तीसरा सामान्यीकरण फ़ॉर्म यह बताएगा कि आपके पास एक सारणी होनी चाहिए जो मूल्यों को सही और गलत रखती हो, और संदर्भ। सुनिश्चित करें कि आप अपनी तिथियों के साथ भी ऐसा करते हैं!
लेकिन जो पूरी तरह से 3 एनएफ का पालन करता है? ;)
आप तीसरे सामान्य फॉर्म की अपनी परिभाषा के लिए एक अलग स्रोत खोजना चाहेंगे। ऐसा कुछ भी नहीं है जो बताता है कि सभी कॉलम में सभी मानों को कहीं भी टेबल में संग्रहीत किया जाना चाहिए। –
मैं थोड़ा सा उपयोग करता हूं। लेकिन कभी-कभी मैं झूठी वापसी करने की क्षमता प्राप्त करना चाहता हूं - या सत्य के कई मूल्य (जैसे त्रुटि संदेश)।
0 = झूठी 1 = पासवर्ड गलत 2 = प्रयोक्ता नाम मौजूद नहीं है: तो अगर मैं बूलियन के बजाय एक पूर्णांक का उपयोग मैं की तरह कुछ doe कर सकते हैं। 3 = खाता लॉक हो गया - कई विफल प्रयासों के लिए। 4 = खाता अक्षम।
और इसी तरह।
फिर यह एक बुलियन नहीं है। यह एक कोड मूल्य है। परिभाषा के अनुसार एक बूलियन सत्य या गलत है और सत्य की कई परिभाषाएं नहीं हैं। –
जैसा कि मैंने कहा था कि मैं थोड़ा सा उपयोग करता हूं। मैंने फिर एक वैकल्पिक समाधान दिया। और यदि आप मेरी पोस्ट पढ़ते हैं तो मैंने कभी-कभी कहा कि मैं एक बूलियन की बजाय int का उपयोग करता हूं। –
कुछ कारणों ऐसा करने के लिए नहीं शामिल हैं:
नहीं सभी डेटाबेस थोड़ा डेटाप्रकार है ताकि आप पूर्णांक के बजाय का उपयोग differnt बैकेंड
उपयोग करने के लिए कुछ डेटाबेसों आप कर सकते हैं नहीं सूचकांक थोड़ा क्षेत्र में सक्षम होने के लिए।
और आपके पास जो भी है वह सचमुच सच/झूठा नहीं है, हां/नहीं, अन्य संभावनाओं के साथ। उदाहरण के लिए आपके पास स्थिति के लिए थोड़ा सा क्षेत्र हो सकता है जिसका अर्थ है खुले या बंद जैसे कुछ। लेकिन बाद में आप महसूस करते हैं कि आपको स्थिति के रूप में भी रद्द करने की आवश्यकता है।
यदि आपके पास दो से अधिक स्थितियां हैं तो Enum का उपयोग करें।
- 1. एसक्यूएल में बूलियन मूल्यों को संग्रहीत करना?
- 2. संग्रहीत प्रक्रिया टी-एसक्यूएल अगर बूलियन चेक
- 3. क्या बिटकमास्क के लिए पूर्णांक और बिट (एन) डेटा प्रकारों के बीच कोई अंतर है?
- 4. मैं प्रोग्राम डेटा रूप से एसक्यूएल डेटा-प्रकारों को .NET डेटा-प्रकारों में कैसे परिवर्तित कर सकता हूं?
- 5. क्या मैं डेटटाइम डेटा को SQLite में जुलिएंड के रूप में संग्रहीत करने से परेशान हूं?
- 6. डेटाबेस में enum मानों को संग्रहीत करना
- 7. संदर्भ के द्वारा सरल प्रकारों को पारित करने के कारण?
- 8. एसक्यूएल अस्थायी तालिका के डेटा प्रकारों को ढूंढना
- 9. सी # कन्वर्ट बिट टू बूलियन
- 10. कैसे सुरक्षित रूप से MySQL में डेटा संग्रहीत करने AES_ENCRYPT
- 11. एक कॉलम में एकाधिक मानों के साथ एसक्यूएल क्वेरी
- 12. बिट फ्लैग के लिए सरल बूलियन ऑपरेटर
- 13. ओरेकल संग्रहीत प्रक्रिया के लिए "बूलियन" पैरामीटर
- 14. किसी डेटाबेस में स्ट्रिंग के रूप में पूर्णांक को संग्रहीत करने के लिए कोई कमी?
- 15. एसक्यूएल मतभेदों के कारण
- 16. फ़ंक्शन में तर्क के रूप में विशिष्ट डेटा प्रकारों को मजबूर करना
- 17. एक्सएमएल के लिए एसक्यूएल - तत्वों के रूप में आउटपुट डेटा या गुणों के रूप में
- 18. WPF अनुप्रयोग में स्थानीय रूप से डेटा फ़ाइलों को संग्रहीत करने के लिए फ़ोल्डर
- 19. मेमोरी में डेटा संग्रहीत
- 20. डेटाबेस में सीधे डेटा या बेस 64 डेटा के रूप में संग्रहीत करना?
- 21. सीएसवी के रूप में संग्रहीत वेक्टर डेटा के साथ महोत्सव में के-साधन क्लस्टरिंग कैसे करें?
- 22. एसक्यूएल सर्वर पर संग्रहीत प्रक्रिया पुनर्मूल्यांकन के कारण कौन से कारक हो सकते हैं?
- 23. ब्लॉब में डेटा संग्रहीत करने के बीच क्या अंतर है, बनाम फ़ाइल में पॉइंटर संग्रहीत करना?
- 24. रेडिस को धीमा करने के कारण
- 25. मैं कैसे निम्नलिखित के रूप में एसक्यूएल
- 26. मुझे "बूलियन" के बजाय बूलियन को पैरामीटर के रूप में क्यों पास करना चाहिए?
- 27. SQL सर्वर में दशमलव मानों को कैसे संग्रहीत करें?
- 28. हजारों वैक्टरों को संग्रहीत करने के लिए डेटा संरचना
- 29. स्मृति में जहां शून्य प्रकारों को संग्रहीत किया जाता है?
- 30. जावा में बूलियन और बूलियन के बीच क्या अंतर है?
पुन:। "सबसे छोटा डेटा प्रकार उपलब्ध": SQL सर्वर बीआईटी मान वास्तव में एक बिट चौड़ा नहीं है, लेकिन पूर्ण बाइट चौड़े के गुणक हैं। हालांकि, एक ही तालिका में एक से अधिक बीआईटी एक ही भंडारण में ध्वस्त हो गया है। – Tomalak
MySQL भी बीआईटी प्रकार का समर्थन करता है, और इसकी स्टोरेज आवश्यकताएं ठीक तरह काम करती हैं जैसे टोमालक ने समझाया। –
@ चाड: MySQL बीआईटी कॉलम एसक्यूएल सर्वर बीआईटी कॉलम से अलग हैं; एक SQLServer बीआईटी फ़ील्ड केवल एक मान स्टोर करता है, और बीआईटी फ़ील्ड एक साथ एकत्र किए जाते हैं जब एक से अधिक होते हैं। एक MySQL बीआईटी फ़ील्ड 1 से 64 बिट्स (घोषणा के आधार पर) के साथ एक बिटमास्क है। – Powerlord