2011-08-18 11 views
60

मैं एक सास एप्लिकेशन बना रहा हूं और उन संसाधनों के लिए आईडी का खुलासा करना चाहता हूं जो मेरे वर्तमान डेटा संग्रहण कार्यान्वयन (पोस्टग्रेस ऑटो-वृद्धि आईडी) से बंधे नहीं हैं। ये स्टैक ओवरफ़्लो पोस्ट (onetwo) सुझाव देते हैं कि स्थानीय रूप से अद्वितीय आईडी बनाना मुश्किल है और मैं यूयूआईडी का भी उपयोग कर सकता हूं, जो निश्चित रूप से किसी भी भाषा में आसानी से और सुरक्षित रूप से उत्पन्न होते हैं।क्या मुझे अपने सार्वजनिक एपीआई में संसाधनों के लिए यूयूआईडी का उपयोग करना चाहिए?

मैं इस दृष्टिकोण से खुश हूं, लेकिन मुझे आश्चर्य है कि मुझे बड़े सास/होस्टेड खिलाड़ियों से कोई एपीआई क्यों नहीं मिल रही है जो ऐसा ही करते हैं?

तो मूल रूप से कोई भी नहीं UUIDs उपयोग करने के लिए लगता है। क्या इसका कोई कारण नहीं है - यहां आविष्कार नहीं किया गया है- यहां, चतुर आंतरिक आईडी एल्गोरिदम या कुछ और? और मेरे मामले में, किसी भी आंतरिक एल्गोरिदम की अनुपस्थिति में, क्या यह यूयूआईडी के साथ जाने का सबसे अधिक समझ में आता है?

+1

एक महान प्रश्न के लिए उपरोक्त! परिणाम कैसे निकले? क्या आपने उन्हें एक अलग कॉलम में स्टोर किया था? –

+2

हाय डेविड, हाँ अंत में मैंने यूयूआईडी का इस्तेमाल किया और उन्हें एक अलग कॉलम में संग्रहित किया! –

+0

मैं वही काम कर रहा हूं –

उत्तर

31

यह है कि उन अन्य विक्रेताओं आप सूचीबद्ध अपने स्वयं आईडी या हैशिंग योजना एक UUID आंतरिक रूप के अधिक समान कुछ का उपयोग करते समय उन्हें एक छोटी संख्या को बेनकाब करने की अनुमति देनी संभव है। लेकिन अंत में, सवाल पूछा जाना चाहिए: जब तक आपके यूआरआई मनुष्यों की बजाय कोड (एपीआई क्लाइंट) द्वारा उपभोग करने का इरादा रखते हैं, तो इससे कोई फर्क क्यों पड़ता है?

उन विक्रेताओं द्वारा किए गए कार्यों से बहुत अधिक न हो जाएं। इस बात की कोई गारंटी नहीं है कि (ए) वे "सही" चीज कर रहे हैं और (बी) कि उनकी ज़रूरतें आपके जैसी ही हैं।

आगे बढ़ें और यूयूआईडी का उपयोग करें।

+1

धन्यवाद ब्रायन, हाँ मैं यूयूआईडी –

7

मुझे लगता है कि तुम यहाँ चार मुख्य विकल्पों पर विचार हो सकता है:

  1. अपने डेटाबेस प्राथमिक कुंजी के रूप में UUID उपयोग करते हैं, लेकिन इसे और अधिक computationally expensive than using Long

  2. लांग मानचित्रण परत करने के लिए एक UUID बनाने हो सकता है, इस तरह आप अपने आरईएसटी संसाधनों को प्रकाशित कर सकते हैं, लेकिन लंबे पीके

  3. का उपयोग कर एक स्वच्छ डेटाबेस संरचना को बनाए रखना, यूयूआईडी मानों को पकड़ने के लिए अपने डेटाबेस टेबल में वैकल्पिक कुंजी कॉलम बनाएं।

  4. बजाय UUID का उपयोग कर आप क्रिप्टोग्राफिक आईडी हो सकता था की

    , मक्खी प्रत्येक ग्राहक और मूल पी के लिए एक कस्टम बीज का उपयोग करने पर उत्पन्न। यह दृष्टिकोण अधिक निष्पादन ओवरहेड लगाता है लेकिन कुछ परिदृश्यों में दिलचस्प हो सकता है। ग्राहक को हमेशा एन्क्रिप्टेड डेटा का उपयोग करना होगा, क्योंकि उन्हें कभी भी बीज या एल्गोरिदम तक पहुंच नहीं होगी।

+1

के साथ प्रेस करने जा रहा हूं धन्यवाद एलेसेंड्रो! मैं विकल्प 3 के साथ जा रहा समाप्त हो गया। –

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