मुझे अपने स्क्लाइट डेटाबेस के लिए प्राथमिक कुंजी के रूप में एक टेक्स्ट कॉलम का उपयोग करने की आवश्यकता है। मेरे पास मेरे टेक्स्ट मानों से 32 बिट/64 बिट int प्राप्त करने के लिए हैश फ़ंक्शन का उपयोग करने की संभावना है (मैं प्राथमिक कुंजी के रूप में उपयोग करना चाहता हूं)। इसलिए मैं इन int हैश मानों का उपयोग प्राथमिक टेक्स्ट के रूप में अपने टेक्स्ट मान के बजाय कर सकता था। लेकिन फिर मुझे तालिका में कच्चे पाठ मूल्य को अतिरिक्त रूप से स्टोर करने की आवश्यकता है।sqlite: क्या मुझे प्राथमिक कुंजी के रूप में टेक्स्ट कॉलम का उपयोग करना चाहिए, या इसे हैश फ़ंक्शन द्वारा कनवर्ट करना चाहिए?
लेकिन मैंने पढ़ा है कि एसक्लाइट आंतरिक रूप से एक पंक्ति का उपयोग कर रहा है, इसलिए मुझे नहीं पता कि हैश फ़ंक्शन का उपयोग करने से वैसे भी मदद मिलेगी।
क्या एसकलाइट अपने पृष्ठों में पंक्ति या टेक्स्ट मान (जब मैं हैश मान के बजाय इसका उपयोग करता हूं) स्टोर करता हूं? जब यह टेक्स्ट मान संग्रहीत करता है तो मुझे लगता है कि यह पृष्ठों को उड़ा सकता है और हैश मान का उपयोग करना बेहतर होगा।
लेकिन मुझे यहां ज्ञान की कमी है। मुझे आशा है कि आप मेरी मदद कर सकते हैं।
* प्राथमिक * कुंजी के रूप में आपको टेक्स्ट कॉलम का उपयोग करने की आवश्यकता क्यों है? – Tim
@ टिम, क्योंकि यह वह कुंजी है जिसे मैं डेटा लाता हूं। यह लगभग 30 वर्ण लंबी स्ट्रिंग है। – Chris
यदि मैं उस तालिका को किसी अन्य या अन्य से संदर्भित करने जा रहा था, तो मैं पीके के रूप में एक ऑटोइनक्रिकमेंटिंग पूर्णांक और लांगटेक्स्टफील्ड पर एक इंडेक्स के साथ जाऊंगा: 'आईडी का चयन करें, जहां से longtextvalue =?'। – Tim