مولد ULID
توليد ULIDs (معرفات فريدة عالميا قابلة للفرز معجميا). 26 حرفا، آمنة من حيث العنوان، قابلة للفرز زمنيا، ومتوافقة مع UUIDs.
توليد ULID
إنشاء معرفات فريدة قابلة للفرز
ULIDs المولدة
انقر على "توليد ULIDs" لإنشاء معرفات فريدة
الأسئلة المتداولة
What is a ULID?
معرّف مكوّن من 26 حرفًا يجمع طابعًا زمنيًا بالميلي ثانية بطول 48 بت مع 80 بت من العشوائية، بحيث تُرتَّب المعرفات تلقائيًا حسب وقت إنشائها.
لماذا تختار ULID بدلاً من UUID؟
تُرتَّب ULIDs معجميًا حسب الزمن، وهي أقصر، وتستخدم ترميز Crockford base32 الآمن للروابط دون شرطات تحتاج إلى إدارتها.
Can I trust the ordering?
نعم، عبر الميلي ثواني المختلفة. أما داخل الميلي ثانية نفسها، فلا يُضمن الترتيب بين معرّفَي ULID.
هل تعمل ULIDs حيثما تُستخدم UUIDs؟
يمكن استخدامها في معظم أعمدة النصوص وواجهات برمجة التطبيقات (APIs)، والتحويل بين ULID و UUID سهل ومباشر عند الحاجة إلى تعايش الصيغتين معًا.
ما طول ULID وما الحروف التي يستخدمها؟
كل ULID يتكون من 26 حرفًا بالضبط باستخدام ترميز Crockford Base32، الذي يشمل الأرقام 0-9 والحروف A-Z باستثناء I وL وO وU. هذا الطول الثابت يحافظ على إمكانية التنبؤ بأحجام أعمدة قواعد البيانات ويتجنب الأحرف الملتبسة عند قراءة المعرفات بصوت عالٍ أو كتابتها يدويًا.
هل ULIDs آمنة للاستخدام في عناوين URL وأسماء الملفات؟
نعم. تحتوي ULIDs على أحرف كبيرة وأرقام فقط، بدون شرطات أو شرطات مائلة أو رموز، لذا تمر عبر عناوين URL وأجزاء المسارات وأسماء الملفات دون ترميز النسبة المئوية (percent-encoding). كما يتناسب طولها البالغ 26 حرفًا بسهولة مع أنماط المسارات وأسطر السجلات.
كم عدد ULIDs التي يمكن توليدها في نفس الميلي ثانية؟
يوفر القسم العشوائي البالغ 80 بت ما يقارب 2^80 قيمة في كل ميلي ثانية، مما يجعل التصادمات مستحيلة عمليًا. إذا كان تطبيقك ينشئ عدة معرفات في غضون ميلي ثانية واحدة، فاستخدم الوضع الرتيب (Monotonic)، الذي يزيد الجزء العشوائي بمقدار واحد للحفاظ على ترتيب الفرز.
كيف أقرأ الطابع الزمني من ULID؟
تشفر الأحرف العشرة الأولى طابع Unix الزمني بالمللي ثانية، بينما تكون الأحرف الـ 16 المتبقية عشوائية. فك تشفير تلك الأحرف العشرة من Crockford Base32 إلى رقم، ثم حوّله باستخدام أي أداة لطوابع Unix الزمنية للحصول على وقت الإنشاء الدقيق.
هيكل ULID
كل ULID يتكون من جزأين: الطابع الزمني والعشوائية
01ARZ3NDEKTSV4RRFFQ69G5FAV
مثال: تم توليد هذا ULID في مللي ثانية محددة ويشمل 80 بت من العشوائية
الطابع الزمني (48 بت)
ميلي ثانية منذ عصر يونكس (1970-01-01). يوفر فرزا حسب الزمن ويستمر حتى عام 10889 ميلادي.
العشوائية (80 بت)
قيمة عشوائية آمنة تشفيريا. يوفر معرفات فريدة بمقدار 1.21 كوينتيليون لكل مللي ثانية.
المواصفات الفنية
تم تصميم ULID ليكون قابلا للفرز، وآمنا من حيث الURL، ومتوافقا مع UUIDs
الميزات
- العشوائية الآمنة تشفيريا
- التوليد من جهة العميل فقط
- قابل للفرز المعجميا
- لا توجد رموز خاصة (آمن للرابط)
المواصفات
- 26 حرفا (128 بت)
- ترميز كروكفورد Base32
- طابع زمني 48-بت + عشوائية 80-بت
- 1.21 مليون معرف في الميلي ثانية
المراجع والموارد
-
ULID Specification - GitHub
مواصفة ULID القابلة للفرز — معرّفات فريدة مسبوقة بطابع زمني.
-
Universally Unique Identifier - Wikipedia
مرجع عام عن المعرّفات الفريدة العالمية (UUID) وتنويعاتها.