2012-08-14 10 views
5

क्या पोस्टग्रेस के साथ उपयोग के लिए ActiveRecord माइग्रेशन के साथ false के बजाय nil पर बूलियन फ़ील्ड को डिफ़ॉल्ट करने में कुछ भी गलत है?रेल माइग्रेशन: क्या बूलियन फ़ील्ड के लिए डिफ़ॉल्ट मान के रूप में 'शून्य' का उपयोग करना ठीक है?

मुझे यह पसंद है कि यह थोड़ा अतिरिक्त डेटा कैसे देता है- चाहे वह फ़ील्ड अभी तक सत्य या गलत के रूप में चिह्नित किया गया हो या नहीं।

+1

निर्भर करता है, तो अपने क्षेत्र वास्तव में है का कारण बन सकता तीन राज्य (सत्य, झूठा, अज्ञात) या सिर्फ दो (सत्य, झूठा)। –

+0

मैं वास्तव में तीसरे "अज्ञात" राज्य पर निर्भर नहीं हूं, केवल डेटा का एक दिलचस्प टुकड़ा जिसे मैं देख सकता हूं। जिस तरह से मैं बूलियन वैल्स की जांच करता हूं उसे शून्य के उपयोग से नहीं फेंक दिया जाता है। – bevanb

+3

अगर आपको इसकी आवश्यकता नहीं है तो ऐसा मत करो। मेरी नीति सबकुछ शून्य नहीं है जब तक कि मेरे पास एनयूएलएल की अनुमति देने का कोई अच्छा कारण न हो, चीजें इस तरह से आसान हो जाती हैं। –

उत्तर

7

बूलियन पर नहीं के बराबर का उपयोग करने से रोकने के लिए कुछ नहीं है - लेकिन मैं व्यक्तिगत रूप से मेरे बूलियन्स सही या गलत होना चाहते हैं, मैं पाया है कि नहीं के बराबर होने कुछ बदसूरत कोड

+1

वास्तव में बदसूरत कोड की तरह लगता है। यदि आपको तीसरे, 'शून्य'/'अज्ञात' की आवश्यकता है, तो मूल्य तो आपको वास्तव में एक enum या एक राज्य मशीन का उपयोग करना चाहिए जो मुझे लगता है। अन्यथा, आप केवल चीजों से लड़ रहे हैं और यह सुनिश्चित करने के लिए आप पर निर्भर है कि आप 'nil' value ** हर जगह ** की जांच कर रहे हैं। –

संबंधित मुद्दे

 संबंधित मुद्दे