ভি 5 ইউআইডি তৈরি হচ্ছে। নাম এবং নামস্থান কী?


125

আমি manপৃষ্ঠাটি পড়েছি , তবে আমি কী nameএবং namespaceএর জন্য কী তা জানি না ।

সংস্করণ 3 এবং সংস্করণ 5 ইউআইইউডের জন্য অতিরিক্ত কমান্ড লাইনের আর্গুমেন্টের নামস্থান এবং নাম দিতে হবে। নেমস্পেসটি হয় স্ট্রিং প্রতিনিধিত্বের একটি ইউইউডি বা অভ্যন্তরীণ প্রাক-সংজ্ঞায়িত নেমস্পেস ইউআইডিগুলির জন্য সনাক্তকারী (বর্তমানে পরিচিত "এনএস: ডিএনএস", "এনএস: ইউআরএল", "এনএস: ওআইডি", এবং "এনএস: এক্স 500")। নামটি নির্বিচারে দৈর্ঘ্যের একটি স্ট্রিং।

নাম স্থান:

নেমস্পেসটি হয় স্ট্রিং প্রতিনিধিত্বতে একটি ইউআইডি বা একটি

এর অর্থ কি এই যে জেনারেটেড ইউআইডি ভি 5 এর সাথে আমার কোনও জায়গায় এটি (ইউআইডি ভি 4) সঞ্চয় করা দরকার? উভয় ক্ষেত্রেই কেন এটি স্বয়ংক্রিয়ভাবে করা হয় না?

নামটি নির্বিচারে দৈর্ঘ্যের একটি স্ট্রিং।

nameএকটি সম্পূর্ণ র্যান্ডম স্ট্রিং? তাহলে এর উদ্দেশ্য কী? এটি কি ইউইউডি ভি 5 থেকে ডিকোড করা যায়?

উত্তর:


106

নাম এবং নেমস্পেসটি (খুব সম্ভবত) অনন্য ইউআইডিগুলির শ্রেণিবিন্যাস তৈরি করতে ব্যবহার করা যেতে পারে।

মোটামুটিভাবে বলতে গেলে, একটি নামের সাথে একটি নেমস্পেস শনাক্তকারী একসাথে হ্যাশ করে একটি টাইপ 3 বা টাইপ 5 ইউআইডি উত্পন্ন হয়। টাইপ 3 ইউআইডিগুলি এমডি 5 এবং টাইপ 5 ইউআইডিগুলি SHA1 ব্যবহার করে। কেবল 128-বিট উপলব্ধ এবং প্রকারটি নির্দিষ্ট করতে 5 টি বিট ব্যবহার করা হয়, সুতরাং সমস্ত হ্যাশ বিটগুলি এটি ইউআইডিতে তৈরি করে না। (এছাড়াও MD5 কে ক্রিপ্টোগ্রাফিকভাবে ভাঙ্গা হিসাবে বিবেচনা করা হয়, এবং SHA1 এর শেষ পায়ে রয়েছে, তাই "খুব সুরক্ষিত" হওয়া দরকার এমন ডেটা যাচাই করতে এটি ব্যবহার করবেন না)। এটি বলেছিল, এটি আপনাকে সম্ভাব্য শ্রেণিবদ্ধ হ্যাশ বা ম্যাকের মতো আচরণ করে একটি সম্ভাব্য শ্রেণিবদ্ধ নাম একটি সম্ভাব্য শ্রেণিবদ্ধ নাম ম্যাপিং একটি পুনরাবৃত্তযোগ্য / যাচাইযোগ্য "হ্যাশ" ফাংশন তৈরির একটি উপায় দেয়।

মনে করুন আপনার কাছে একটি (কী, মান) স্টোর রয়েছে তবে এটি কেবল একটি নামস্থান সমর্থন করে। আপনি টাইপ 3 বা টাইপ 5 ইউআইডি ব্যবহার করে একটি বিশাল সংখ্যক স্বতন্ত্র লজিক্যাল নেমস্পেস তৈরি করতে পারেন। প্রথমে প্রতিটি নেমস্পেসের জন্য একটি রুট ইউআইডি তৈরি করুন। এটি কোনও টাইপ 1 (হোস্ট + টাইমস্ট্যাম্প) বা টাইপ 4 (এলোমেলো) ইউইউডি হতে পারে যতক্ষণ আপনি এটি কোথাও স্ট্যাশ করেন। বিকল্পভাবে আপনি আপনার মূলের জন্য একটি এলোমেলো ইউআইডি তৈরি করতে পারেন (বা nullইউইউডিটিকে: 00000000-0000-0000-0000-000000000000রুট হিসাবে ব্যবহার করুন) এবং তারপরে প্রতিটি নামের জায়গার জন্য একটি " uuid -v5 $ROOTUUID $NAMESPACENAME" পুনরায় উত্পাদনযোগ্য ইউআইডি তৈরি করতে পারেন "using এখন আপনি নামের জায়গার মধ্যে কীগুলির জন্য অনন্য ইউআইডিগুলি তৈরি করতে পারেন "uuid -v5 $NAMESPACEUUID $KEY"। এই ইউআইডিগুলিকে সংঘর্ষ এড়ানোর উচ্চ সম্ভাবনা সহ একক কী-মান স্টোরে ফেলে দেওয়া যেতে পারে This এই প্রক্রিয়াটি পুনরাবৃত্তি করা যেতে পারে যাতে উদাহরণস্বরূপ যদি কোনও ইউইউডি কী এর সাথে যুক্ত" মান "কোনও ধরণের যৌক্তিক" নামপত্রে প্রতিনিধিত্ব করে " "বালতি, ধারক বা ডিরেক্টরি হিসাবে, তার ইউআইডিটি আরও ক্রমবর্ধমান ইউইউডি উত্পন্ন করার জন্য ব্যবহার করা যেতে পারে।

উত্পন্ন প্রকার 3 বা 5 প্রকারের ইউআইডিউতে নেমস্পেস আইডির একটি (আংশিক) হ্যাশ রয়েছে এবং নাম-স্থানের (নাম) মধ্যে রয়েছে। এটি কোনও এনকোডড থাকা বার্তা ম্যাকের চেয়ে ম্যাসেজের চেয়ে নেমস্পেস ইউইউডি ধারণ করে না। নামটি ইউয়েড অ্যালগরিদমের দৃষ্টিকোণ থেকে একটি "স্বেচ্ছাসেবক" (অক্টেট) স্ট্রিং। এর অর্থ তবে আপনার প্রয়োগের উপর নির্ভর করে। এটি একটি লজিকাল ডিরেক্টরিতে কোনও ফাইলের নাম হতে পারে, কোনও বস্তু-স্টোরের মধ্যে অবজেক্ট-আইডি, ইত্যাদি।

যদিও এটি পরিমিত পরিমাণে নেমস্পেস এবং কীগুলির জন্য ভাল কাজ করে, অবশেষে এটি বাষ্পের বাইরে চলে যায় যদি আপনি খুব বেশি সংখ্যক কীগুলির জন্য লক্ষ্য রাখেন যা খুব উচ্চ সম্ভাবনার সাথে অনন্য। জন্মদিন সমস্যার জন্য উইকিপিডিয়া প্রবেশে (ওরফে জন্মদিনের প্যারাডক্স) একটি টেবিল অন্তর্ভুক্ত রয়েছে যা বিভিন্ন সংখ্যক কী এবং টেবিলের আকারের জন্য কমপক্ষে একটি সংঘর্ষের সম্ভাবনা দেয়। 128-বিটগুলির জন্য, 26 বিলিয়ন কীগুলিকে এইভাবে হ্যাশ করার ফলে p=10^-18(উপেক্ষিত) সংঘর্ষের সম্ভাবনা রয়েছে তবে 26 ট্রিলিয়ন কীগুলি কমপক্ষে একটি সংঘর্ষের সম্ভাবনা বৃদ্ধি করে p=10^-12(ট্রিলিয়নে একটিতে), এবং হ্যাশিং 26*10^15কীগুলির সম্ভাবনা বৃদ্ধি করে কমপক্ষে একটি সংঘর্ষp=10^-6(লাখে একজন). ইউআইডি টাইপটিকে এনকোড করে এমন 5 টি বিটের জন্য সামঞ্জস্য করা, এটি কিছুটা দ্রুত ফুরিয়ে যাবে, সুতরাং ট্রিলিয়ন কীগুলিতে প্রায় 1-ইন-ট্রিলিয়ন একক সংঘর্ষ হওয়ার সম্ভাবনা রয়েছে chance

সম্ভাব্যতার সারণির জন্য http://en.wikedia.org/wiki/Birthday_problem#Probability_table দেখুন ।

ইউইউডি এনকোডিংয়ের বিষয়ে আরও তথ্যের জন্য http://www.ietf.org/rfc/rfc4122.txt দেখুন ।


2
শ্রেণিবিন্যাসের নীচে একটি নির্দিষ্ট স্তরে, আমি কোনও ইউআইডিভি 5 কে নেমস্পেস হিসাবে এবং ইউআইইউডিভি 4 টি এলোমেলো কী হিসাবে ডেটা নিজেই (যেটি এই জিইউআইডি দ্বারা চিহ্নিত করা হচ্ছে) নিশ্চিত হওয়ার জন্য ইউআইইউডের সংঘর্ষের সম্ভাবনা বাড়ায় না? কোন পারফরম্যান্স সমস্যা সম্পর্কে আমার জানা উচিত?
এরমিক

আমি ধারণায় নতুন এবং আপনি যে শ্রেণিবিন্যাসের কথা বলছেন তা অবাক হয়ে গিয়েছিলাম । আমি এটিকে কোথায় দেখতে পাব ... স্পষ্টতার পরে আমি স্পষ্ট হয়ে গেলে কিছুটা স্পষ্টতা এসেছিল যা নামপথের জন্য একটি পুনরুত্পাদনযোগ্য ইউআইডি তৈরি করতে ব্যবহৃত হতে পারে । আমি অবাক হয়ে যাচ্ছি যে কোনও নির্দিষ্ট নাম স্থান (এর ইউইউডি) ব্যবহার করে প্রদত্ত ইউআইডি (3 বা 5 প্রকারের) উত্পন্ন হয়েছে তা যাচাই করার কোনও উপায় আছে?
এমএসসিওউজ

213

3 টাইপ করুন এবং টাইপ করুন 5 UUID জানা মাত্র একটি ঠাসাঠাসি একটি কৌশল হয় হ্যাশ একটি UUID মধ্যে।

  • টাইপ 1: স্ট্যাকস ম্যাক ঠিকানা + ডেটটাইম 128 বিট মধ্যে
  • টাইপ 3 : একটি এমডি 5 হ্যাশ 128 বিটের মধ্যে স্টাফ করে
  • প্রকার 4: এলোমেলো তথ্য স্টাফ 128 বিট মধ্যে
  • 5 টাইপ করুন : একটি SHA1 হ্যাশ 128 বিটের মধ্যে স্টফ করে
  • প্রকার 6: অনুক্রমিক ইউআইডিগুলির জন্য আনুষ্ঠানিক ধারণা

একটি SHA1 হ্যাশ 160 বিট (20 বাইট) আউটপুট করে; হ্যাশের ফলাফলটি একটি ইউইউডিতে রূপান্তরিত হয়।

SHA1 থেকে 20-বাইট হ্যাশ সহ:

SHA1 Digest:   74738ff5 5367 e958 9aee 98fffdcd1876 94028007
UUID (v5):     74738ff5-5367-5958-9aee-98fffdcd1876
                             ^_low nibble is set to 5, to indicate type 5
                                  ^_first two bits set to 1 and 0, respectively

(দ্রষ্টব্য যে '9' এর প্রথম দুটি বিট ইতিমধ্যে যথাক্রমে 1 এবং 0, সুতরাং এর কোনও প্রভাব নেই)।

আমি কি হ্যাশ করব?

আপনি সম্ভবত ভাবছেন যে এটি হ্যাশ করার কথা। মূলত আপনি হ্যাশ এর সংক্ষিপ্তকরণ:

sha1([NamespaceUUID]+[AnyString]);

নামের বিরোধগুলি রোধ করতে আপনি আপনার স্ট্রিংটিকে তথাকথিত নেমস্পেস দিয়ে উপসর্গ করেন ।

UUID জন্য RFC তোমার জন্য চার নামব্যবধান প্রাক সংজ্ঞায়িত করে:

  • NameSpace_DNS: {6ba7b810-9 داد-11d1-80b4-00c04fd430c8}
  • NameSpace_URL: {6ba7b811-9 داد-11d1-80b4-00c04fd430c8}
  • NameSpace_OID: {6ba7b812-9 داد-11d1-80b4-00c04fd430c8}
  • NameSpace_X500: {6ba7b814-9dad-11d1-80b4-00c04fd430c8}

সুতরাং, আপনি একসাথে হ্যাশ করতে পারে:

StackOverflowDnsUUID = sha1(Namespace_DNS + "stackoverflow.com");
StackOverflowUrlUUID = sha1(Namespace_URL + "stackoverflow.com");

আরএফসি তারপরে সংজ্ঞা দেয়:

  • SHA1 থেকে 160 বিট নিন
  • এবং এটিকে একটি ইউইউডি এর 128 বিটে রূপান্তর করুন

মৌলিক সারকথা শুধুমাত্র প্রথম 128 বিট, কাপড় একটি নিতে হয় 5ধরনের রেকর্ড, এবং তারপর প্রথম দুই বিট সেট clock_seq_hi_and_reserved1 ও 0, যথাক্রমে অধ্যায়।

আরও উদাহরণ

এখন আপনার একটি ফাংশন রয়েছে যা একটি তথাকথিত নাম উত্পন্ন করে , আপনি ফাংশনটি রাখতে পারেন (সিউডো কোডে):

UUID NameToUUID(UUID NamespaceUUID, String Name)
{
    byte[] hash = sha1(NamespaceUUID.ToBytes() + Name.ToBytes());
    UUID result;
    Copy(hash, result, 16);
    result[6] &= 0x0F; 
    result[6] |= 0x50;
    result[8] &= 0x3F; 
    result[8] |= 0x80;
    return result;
}

(মনে রাখবেন যে আপনার সিস্টেমের এন্ডিয়ান-নেস উপরের বাইটগুলির সূচকগুলিকে প্রভাবিত করতে পারে)

আপনার কল থাকতে পারে:

uuid = NameToUUID(Namespace_DNS, 'www.stackoverflow.com');
uuid = NameToUUID(Namespace_DNS, 'www.google.com');
uuid = NameToUUID(Namespace_URL, 'http://www.stackoverflow.com');
uuid = NameToUUID(Namespace_URL, 'http://www.google.com/search&q=rfc+4112');
uuid = NameToUUID(Namespace_URL, 'http://stackoverflow.com/questions/5515880/test-vectors-for-uuid-version-5-converting-hash-into-guid-algorithm');

এখন আপনার প্রশ্ন ফিরে

সংস্করণ 3 এবং সংস্করণ 5 ইউআইইউডের জন্য অতিরিক্ত কমান্ড লাইনের আর্গুমেন্টের নামস্থান এবং নাম দিতে হবে। নেমস্পেসটি হয় স্ট্রিং প্রতিনিধিত্বের একটি ইউইউডি বা অভ্যন্তরীণ প্রাক-সংজ্ঞায়িত নেমস্পেস ইউআইডিগুলির জন্য সনাক্তকারী (বর্তমানে পরিচিত "এনএস: ডিএনএস", "এনএস: ইউআরএল", "এনএস: ওআইডি", এবং "এনএস: এক্স 500")। নামটি নির্বিচারে দৈর্ঘ্যের একটি স্ট্রিং।

নামস্থান যাই হোক না কেন আপনার মত UUID হয়। এটি পূর্বনির্ধারিতগুলির মধ্যে একটি হতে পারে, বা আপনি নিজের তৈরি করতে পারেন, যেমন:

UUID Namespace_RectalForeignExtractedObject = '8e884ace-bee4-11e4-8dfc-aa07a5b093db'

নামটি নির্বিচারে দৈর্ঘ্যের একটি স্ট্রিং।

নামটি কেবলমাত্র পাঠ্য যা আপনি নেমস্পেসে যুক্ত করতে চান, তারপরে হ্যাশ করে একটি ইউইউডিতে স্টাফ করতে চান:

uuid = NameToUUID('8e884ace-bee4-11e4-8dfc-aa07a5b093db', 'screwdriver');
uuid = NameToUUID('8e884ace-bee4-11e4-8dfc-aa07a5b093db', 'toothbrush');
uuid = NameToUUID('8e884ace-bee4-11e4-8dfc-aa07a5b093db', 'broomstick');
uuid = NameToUUID('8e884ace-bee4-11e4-8dfc-aa07a5b093db', 'orange');
uuid = NameToUUID('8e884ace-bee4-11e4-8dfc-aa07a5b093db', 'axe handle');
uuid = NameToUUID('8e884ace-bee4-11e4-8dfc-aa07a5b093db', 'impulse body spray');
uuid = NameToUUID('8e884ace-bee4-11e4-8dfc-aa07a5b093db', 'iPod Touch');

দ্রষ্টব্য : সর্বজনীন ডোমেনে প্রকাশিত কোনও কোড। কোনও অ্যাট্রিবিউশনের প্রয়োজন নেই।


45
পুরো ব্যাখ্যা জন্য ধন্যবাদ। আমি যদি আমি বোনাস পয়েন্ট দিতে পারে Namespace_RectalForeignExtractedObject
11:48

নাম বা ইউএসইউড থেকে নাম স্থান ডিকোড করা সম্ভব?
সত্যেশ

3
@ সাথেশ না, একটি হ্যাশ ডিকোড করা সম্ভব নয়; হ্যাশগুলি একমুখী ফাংশন। উদাহরণস্বরূপ, পুরো স্টার ট্রেক টিএনজি ব্লু-রে সংগ্রহটি 81 গিগাবাইট, এবং এর C5740BBBF2429115276D4AB60A020ED3ADE01192 এর একটি হ্যাশ রয়েছে । 20-বাইট হ্যাশটি 81 গিগাবাইটে ফিরে ডিকোড করার কোনও উপায় নেই। আপনার যদি সত্যিই এটির প্রয়োজন হয় তবে আপনি একই সম্ভাব্য জিআইইডি এবং সম্ভাব্য স্ট্রিংগুলিকে হ্যাশ করার চেষ্টা করতে পারেন যতক্ষণ না আপনি একই ফলাফল দেয় এমন সংমিশ্রণটি খুঁজে পান। যেকোন লুচ দিয়ে আপনি এটিকে চিরকাল এবং অনন্তকালের মধ্যে কোথাও খুঁজে পাবেন।
ইয়ান বয়ড 13

22

একটি নাম শনাক্তকারী ছাড়া আর কিছুই নয় যা কিছু নামের জায়গার মধ্যে অনন্য। সমস্যাটি হ'ল নামস্থানগুলি প্রায়শই বেশ ছোট থাকে এবং একটিতে নামগুলি অন্যের নামের সাথে প্রায়শই সংঘর্ষ হয়। উদাহরণস্বরূপ, আমার গাড়ির লাইসেন্স প্লেট নম্বর (নাম) আমার রাজ্য ডিএমভির নাম স্থানের মধ্যে অনন্য তবে এটি সম্ভবত বিশ্বে অনন্য নয়; অন্যান্য রাজ্যের ডিএমভিগুলি তাদের নিজস্ব নামস্থানে একই নামটি ব্যবহার করতে পারে। হেক, অন্য কারও কাছে একটি ফোন নম্বর (নাম) থাকতে পারে যা এটিও মেলে কারণ এটি এখনও অন্য নেমস্পেস ইত্যাদি matches

ইউআইডিগুলিকে একক নেমস্পেসকে এত বিশালভাবে বসবাস করতে দেখা যায় যে এটি প্রতিটি কিছুর জন্য একটি অনন্য নাম সরবরাহ করতে পারে ; "সর্বজনীন" এর অর্থ এটাই। তবে আপনি কীভাবে অন্য ইউএসইউডে অন্য নামের জায়গাগুলিতে বিদ্যমান নামগুলি মানচিত্র করবেন?

একটি সুস্পষ্ট সমাধান হ'ল প্রতিটি আইটেমের বিযুক্ত নামের জায়গাগুলিতে পুরানো নামগুলি প্রতিস্থাপনের জন্য একটি ইউআইডি (ভি 1 বা ভি 4) তৈরি করা। নেতিবাচক দিকটি হ'ল এগুলি অনেক বড়, আপনার ডেটাসেটের অনুলিপি থাকা প্রত্যেকের সাথে আপনাকে সমস্ত নতুন নাম যোগাযোগ করতে হবে, আপনার সমস্ত API গুলি আপডেট করতে হবে etc. যাইহোক, যার অর্থ এখন প্রতিটি আইটেমের দুটি নাম রয়েছে, তাই আপনি কি জিনিসগুলি আরও ভাল বা খারাপ করেছেন?

এখানেই ভি 3 / ভি 5 আসে The ইউইউডিগুলি ভি 4 এর মতো এলোমেলো দেখায় তবে প্রকৃতপক্ষে নির্মাতারা হয়; নামের জায়গার জন্য যার কাছে সঠিক ইউআইডি রয়েছে তারপরে সেই নামের জায়গার মধ্যে কোনও প্রদত্ত নামের জন্য স্বাধীনভাবে একই ইউআইডি তৈরি করতে পারে । আপনার এগুলি প্রকাশ করার প্রয়োজন নেই বা এগুলি প্রাক-উত্পন্ন করার দরকার নেই যেহেতু যে কেউ প্রয়োজন মতো ফ্লাইতে তৈরি করতে পারে!

ডিএনএসের নাম এবং ইউআরএলগুলি খুব সাধারণভাবে ব্যবহৃত জায়গাগুলি ব্যবহার করা হয়, তাই তাদের জন্য স্ট্যান্ডার্ড ইউআইডি প্রকাশিত হয়েছিল; ASN.1 OIDs এবং X.500 নামগুলি সাধারণ হিসাবে দেখা যায় না, তবে মানক সংস্থাগুলি তাদের পছন্দ করে, তাই তারা তাদের জন্য মানক নাম স্থান ইউআইডিও প্রকাশ করেছে।

অন্য সমস্ত নেমস্পেসের জন্য আপনাকে নিজের নিজস্ব নাম স্পেস ইউইউডি (ভি 1 বা ভি 4) তৈরি করতে হবে এবং যার প্রয়োজন তার সাথে যোগাযোগ করতে হবে। আপনার যদি বেশ কয়েকটি নেমস্পেস থাকে তবে প্রত্যেকের জন্য ইউআইডি প্রকাশ করতে হবে তা স্পষ্টভাবে আদর্শ নয়।

শ্রেণিবিন্যাসটি এখানে আসে: আপনি একটি "বেস" ইউইউডি (যে কোনও প্রকারের) তৈরি করেন এবং তারপরে আপনার অন্যান্য নামের জায়গাগুলির নামকরণের জন্য এটি একটি নেমস্পেস হিসাবে ব্যবহার করুন! এইভাবে, আপনাকে কেবল বেস ইউআইডিটি প্রকাশ করতে হবে (বা একটি সুস্পষ্ট ব্যবহার করুন), এবং বাকী সবাই গণনা করতে পারে।

উদাহরণস্বরূপ, চলুন আমরা থাকি আমরা স্ট্যাক ওভারফ্লোর জন্য কিছু ইউআইডি তৈরি করতে চেয়েছিলাম; যার ডিএনএস নেমস্পেসের মধ্যে একটি সুস্পষ্ট নাম রয়েছে, তাই বেসটি সুস্পষ্ট:

uuid ns_dns = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';
uuid ns_base = uuidv5(ns_dns, 'stackoverflow.com');

স্ট্যাকওভারফ্লো নিজেই ব্যবহারকারী, প্রশ্ন, উত্তর, মন্তব্য ইত্যাদির জন্য পৃথক নেমস্পেস রয়েছে তবে সেগুলি মোটামুটি সুস্পষ্টও রয়েছে:

uuid ns_user = uuidv5(ns_base, 'user');
uuid ns_question = uuidv5(ns_base, 'question');
uuid ns_answer = uuidv5(ns_base, 'answer');
uuid ns_comment = uuidv5(ns_base, 'comment');

এই নির্দিষ্ট প্রশ্নটি # 10867405, সুতরাং এর ইউইউডিটি হবে:

uuid here = uuidv5(ns_question, '10867405');

লক্ষ্য করুন যে এই প্রক্রিয়াতে এলোমেলো কিছুই নেই , সুতরাং যে কেউ একই যুক্তি অনুসরণ করবে সে একই উত্তর পাবে, তবুও ইউইউডি নেমস্পেস এত বিশাল যে এটি (কার্যকরভাবে, একটি 122-বিট ক্রিপ্টোগ্রাফিক হ্যাশের সুরক্ষার ফলে) কখনই একটির সাথে সংঘর্ষ করবে না will ইউইউডি অন্য যে কোনও নেমস্পেস / নামের জুড়ি থেকে উত্পন্ন।


আমি ভাবছি কেন স্ট্যাকওভারফ্লোতে কোনও ইউআইডি-তে অনন্যভাবে উত্পন্ন বড় পূর্ণসংখ্যার মানচিত্র তৈরি করা দরকার কেননা এর এপিআইগুলি স্পষ্টতই কেবল বড় সংখ্যাকে একটি স্ট্রিং হিসাবে ফিরিয়ে দেয়। ইউপিউইডটি API এ না থাকলে কোথায় ব্যবহৃত হবে। দেখে মনে হচ্ছে আমাদের হয় একটি ইউআইডি বা বিগিন্ট নির্বাচন করা উচিত? এই হাইব্রিড কৌশলটি কেন করবেন। তবুও আপনার উত্তরে স্পষ্ট ব্যাখ্যার জন্য +1।
নিশান্ট

4
ইউইউডি ভি 3 / ভি 5 এর জন্য ডিজাইন করা হয়েছিল যখন আপনার বিদ্যমান (এবং সম্ভবত সংঘর্ষের) নামের স্থানগুলিকে একটি ইউআইডি নেমস্পেসে রূপান্তর করতে হবে যা ডেটাসেট মার্জ করার সময় প্রায়শই কার্যকর। যদি আপনি যা করছেন তার ক্ষেত্রে যদি তা প্রযোজ্য না হয় তবে ভি 1 / ভি 4 দিয়ে যান।
স্টিফেনস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.