2009-05-20 18 views
14

sqlite कुछ ऐसा उपयोग करता है जो लेखकों को "Manifest Typing" कहते हैं, जिसका मूल रूप से अर्थ है कि स्क्लाइट गतिशील रूप से टाइप किया गया है: यदि आप चाहते हैं तो आप एक "int" कॉलम में एक वर्चर वैल्यू स्टोर कर सकते हैं।एसक्लाइट के मेनिफेस्ट टाइपिंग का उपयोग कब उपयोगी होता है?

यह एक दिलचस्प डिजाइन निर्णय है, लेकिन जब भी मैं स्क्लाइट का उपयोग करता हूं, मैंने इसे मानक आरडीएमएस की तरह इस्तेमाल किया है और इस प्रकार के प्रकारों का इलाज किया है जैसे कि वे स्थैतिक थे। दरअसल, मैंने अन्य प्रणालियों में डेटाबेस डिजाइन करते समय गतिशील रूप से टाइप किए गए कॉलम के लिए भी कामना नहीं की है।

तो, यह सुविधा कब उपयोगी है? क्या किसी ने इस अभ्यास में इसके लिए अच्छा उपयोग किया है जो स्थिर रूप से टाइप किए गए कॉलम के साथ आसानी से नहीं किया जा सका?

उत्तर

5

यह वास्तव में उपयोग करने में आसान बनाता है। आपको इस बारे में चिंता करने की आवश्यकता नहीं है कि इस क्षेत्र को डेटाबेस स्तर पर कितना बड़ा होना चाहिए, या आपके इंटरजेर्स कितने खुदाई हो सकते हैं। कम या ज्यादा यह 'क्यों नहीं?' चीज़।

दूसरी तरफ, SQL सर्वर में स्थैतिक टाइपिंग सिस्टम को बेहतर और खोज करने की अनुमति देता है, कुछ मामलों में बहुत बेहतर है, लेकिन सभी अनुप्रयोगों में से आधे के लिए, मुझे संदेह है कि डेटाबेस प्रदर्शन में सुधार होगा, या उनका प्रदर्शन ' गरीब 'अन्य कारणों से (अस्थायी तालिकाओं को हर चयन, घातीय चयन, आदि बनाया जा रहा है)।

मैं क्लाइंट कैश के रूप में अपने .NET प्रोजेक्ट्स के लिए हर समय एसक्लाइट का उपयोग करता हूं क्योंकि यह बहुत आसान है। अब अगर वे केवल GUIDs को SQL सर्वर के समान उपयोग करने के लिए प्राप्त कर सकते हैं तो मैं एक खुश कैंपर होगा।

+2

यह एक अच्छा बिंदु है, उदाहरण के लिए, वर्चर्स फ़ील्ड अब वर्णों की एक निश्चित संख्या तक ही सीमित नहीं है, जो कुछ ऐसा है जो हमेशा मुझे पारंपरिक आरडीएमएस के बारे में परेशान करता है। –

+0

मैंने सोचा कि मेरे अलावा कम से कम कुछ अन्य 'उत्तर' होंगे। यह सिर्फ इतना सबूत है कि हमें वहां एसक्लाइट.NET प्राप्त करने की आवश्यकता है। उन स्थानों पर उपयोग करना और तैनाती करना बहुत आसान है जहां आपको * एसक्यूएल सर्वर या एक्सप्रेस की आवश्यकता नहीं है। – JasonRShaver

4

डायनामिक टाइपिंग कॉन्फ़िगरेशन सेटिंग्स जैसी चीज़ों को संग्रहीत करने के लिए उपयोगी है। उदाहरण के लिए, विंडोज रजिस्ट्री ले लो। प्रत्येक कुंजी फॉर्म की SQLite तालिका होने की तरह है:

तालिका सेटिंग्स बनाएं (नाम टेक्स्ट प्राथमिक कुंजी, मान);

जहां मान न्यूल (REG_NONE) या एक इंटेग्रर (REG_DWORD/REG_QWORD), टेक्स्ट (REG_SZ), या BLOB (REG_BINARY) हो सकता है।

इसके अलावा, मुझे जेसन के साथ स्ट्रिंग के लिए अधिकतम आकार लागू करने की उपयोगिता के बारे में सहमत होना होगा। क्योंकि अधिकांश समय, ये सीमा पूरी तरह से आर्बिटरी होती है, और आप किसी दिन 32-बाइट स्ट्रिंग को ढूंढने पर भरोसा कर सकते हैं जिसे आपके VARCHAR (30) में संग्रहीत करने की आवश्यकता होती है।

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