5

क्या Google App Engine डेटास्टोर में स्ट्रिंग पर कुंजी संग्रहीत करने के फायदे हैं।जीएई स्टोरेज कुंजी बनाम स्ट्रिंग आईडी

उदाहरण के लिए:

class Model(ndb.Model): 
    user_key = ndb.KeyProperty() 

वी.एस.

class Model(ndb.Model): 
    user_id = ndb.StringProperty() 
  • तुम क्यों StringID के बजाय एक कुंजी संग्रहीत करना चाहते हैं? क्या यह केवल सुविधा के लिए है?
  • जो कम संग्रहण स्थान का उपयोग करता है?
  • जो पूछताछ के लिए तेज़ है?

उत्तर

5

यदि आप entity groups (पूर्वजों) का उपयोग कर रहे हैं, तो KeyProperty इसका समर्थन करेगा। आईडी को संग्रहीत करते समय, जब तक आप जिस आईडी को संग्रहीत नहीं कर रहे हैं वह इकाई समूह रूट है, तो आपको पूर्ण कुंजी को पुनर्निर्मित करने के लिए पर्याप्त जानकारी संग्रहीत करने की आवश्यकता होगी।

कुंजीप्रॉपर्टी अधिक जगह लेगा, क्योंकि यह अतिरिक्त डेटा संग्रहीत कर रहा है, लेकिन दूसरी इकाई को पुनर्प्राप्त करते समय उपयोग करना अधिक सुविधाजनक हो सकता है। क्वेरी गति तुलनीय होना चाहिए।

+0

इकाई समूह के साथ अच्छा बिंदु, कुंजी संग्रहित करना अधिक समझ में आता है। User_id की तरह कुछ सरल के साथ आप कुंजी या स्ट्रिंग/int आईडी संग्रहीत करने की अनुशंसा करेंगे? –

+0

मैं व्यक्तिगत रूप से कहूंगा कि यह आपकी वरीयता है। यदि कोई ऐसा मौका है कि आप * इकाई समूह _or_ नेमस्पेस का उपयोग करना चाहते हैं तो मुझे कुंजी स्टोर करना पसंद है। ऐसे उपयोगकर्ता की तरह जो कभी भी बदलने की संभावना नहीं है, कुंजी नाम/आईडी पर्याप्त हो सकता है। –

+0

धन्यवाद रॉबर्ट, मैं नामस्थानों के बारे में भूल गया था। एक बार जब Google अनुप्रयोगों के बीच डेटा साझा करने की अनुमति देता है तो एपिड की कुंजी स्टोरेज चीजों को आसान बनाती है। –