ইউআইডি সর্বোচ্চ অক্ষরের দৈর্ঘ্য


115

ওরাকল ডিবি আউট করার জন্য আমরা ইউইউডিটিকে প্রাথমিক কী হিসাবে ব্যবহার করছি, এবং ভর্চারের জন্য উপযুক্ত সর্বোচ্চ অক্ষরের দৈর্ঘ্য নির্ধারণ করার চেষ্টা করছি। স্পষ্টতই এটি 36 টি অক্ষর তবে আমরা লক্ষ্য করেছি যে ইউআইডির উত্পন্ন যা এর চেয়ে দীর্ঘ - 60 অক্ষরের দৈর্ঘ্য। ইউইউডি-র জন্য কোনও উপযুক্ত সর্বোচ্চ চর দৈর্ঘ্য জানেন কি ??


2
কোনও ইউআইডি 128 বিট নম্বর হওয়ায় আমি কোডিং এটিকে 60 চর স্ট্রিংয়ে রূপান্তর করতে পারে কিনা তা দেখতে সত্যিই আগ্রহী। আমার কাছে অত্যন্ত দুর্বল এনকোডিং বা অন্য কোনও, অবাস্তব সমস্যা বলে মনে হচ্ছে।
fvu

1
আপনার আরডিবিএমএস কি? এমএস এসকিউএল এর ইউআইডিগুলির জন্য একটি উত্সর্গীকৃত প্রকার রয়েছে এবং অন্যরা কেবল বাইটগুলি সঞ্চয় করতে পারেন। আপনি এগুলি সংরক্ষণ করতে চান এমন কোনও কারণ আছে VARCHAR?

@ user565869 এগুলিকে বাইট হিসাবে সংরক্ষণ করা যেকোন ধরণের ম্যানুয়াল পরিদর্শনের জন্য ভয়ঙ্কর
এনারসিসিও

উত্তর:


171

আরএফসি 4122 এর ধারা 3 ইউআইডি স্ট্রিং উপস্থাপনার আনুষ্ঠানিক সংজ্ঞা প্রদান করে। এটি 36 টি অক্ষর (32 হেক্স সংখ্যা + 4 ড্যাশ)।

আপনার মতামতগুলি অবৈধ 60-চর আইডিগুলি কোথা থেকে আসছে তা নির্ধারণ করতে হবে এবং সিদ্ধান্ত নিতে হবে 1) আপনি যদি সেগুলি গ্রহণ করতে চান এবং 2) এই আইডিগুলির সর্বাধিক দৈর্ঘ্য কোনটি এপিআই তৈরির জন্য ব্যবহৃত হয় তার ভিত্তিতে হতে পারে।


64

এটি CHAR 36 হিসাবে সংজ্ঞায়িত করার জন্য নিখুঁত ক্ষেত্র, উপায়টি নয়, VARCHAR 36 নয়, যেহেতু প্রতিটি মানেরই একই দৈর্ঘ্য হবে। এবং আপনি কম স্টোরেজ স্পেস ব্যবহার করবেন, যেহেতু আপনার প্রতিটি মানের জন্য কেবলমাত্র মানটির জন্য ডেটার দৈর্ঘ্য সংরক্ষণ করার দরকার নেই।


9
CHAR VCRAR এর চেয়ে বেশি জায়গা ব্যবহার করতে পারে যদি কলামে আপনার অক্ষর সেটটি বহু-বাইট হয় ( স্ট্যাকওভারফ্লো . com/a/59686/1691446 এর নীচের অংশটি দেখুন )
ডেভিড

7
অত্যন্ত নিশ্চিত যে ইউইউডিভি 4 কেবলমাত্র ইউটিএফ -8 এর লাতিন -1 চরসেট ব্যবহার করছে, এক্ষেত্রে এই অভ্যাসটি প্রভাবিত হবে না। আপনি যদিও আলাদা চ্যাসেট ব্যবহার করছেন কিনা তা অবশ্যই পরীক্ষা করে দেখুন।
অ্যারন_হ

2
স্ট্রিং ফর্ম্যাটে ইউআইইডি কেবল অক্ষরগুলির এই সেটটি ব্যবহার করতে পারে (রেজেেক্স): [0-9A-Fa-f-]যা এএসসিআইআই-এর 23 স্বতন্ত্র octets।
কাউয়ার্ট

আরএফসি 4122 বলছে ইউআইডিগুলি 16 অক্টেট বা 128 বিট। আপনি যদি এই স্টোরের চেয়ে বেশি ব্যবহার করেন তবে আপনি সেগুলি অক্ষমভাবে এনকোড করছেন। উদাহরণস্বরূপ, ড্যাশগুলি এনকোড করার দরকার নেই। তারা কোনও তথ্য যোগ করে না।
ট্রেনটন

4
@ ট্রেন্টন স্টোরেজ দক্ষতা এবং ব্যবহারকারীর বন্ধুত্বের মধ্যে একটি বাণিজ্য বন্ধ আছে। সর্বাধিক স্টোরেজ দক্ষতার জন্য কেউ ইউএনইউডিগুলিকে বিনারি (16) হিসাবে সংরক্ষণ করতে পারে তবে ডিবিটির উপরে নজর দেওয়া কেউ নীতিগত উপস্থাপনাটি দেখতে পাবে না এবং একটি প্রোগ্রামিং ল্যাঙ্গুয়েজ কেবলমাত্র ইউএনইউড অবজেক্ট তৈরির উপায় হতে পারে নীতিগত / স্ট্রিং প্রতিনিধিত্ব থেকে, বা না একটি ইউআইডি অবজেক্ট টাইপ মোটামুটি;
ইউআইডিডি

7

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

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.