- بواسطة x32x01 ||
بعد ما اتكلمنا عن UUID، ULID، Snowflake ID، KSUID، MongoDB ObjectId، و NanoID، هنتكلم عن CUID.
الـ CUID معناها Collision-resistant Unique Identifier، والهدف الأساسي منه:
CUID بيتكون من إيه؟
الـ CUID متقسم لعدة أجزاء:
شكل الـ CUID
مثال على CUID:
مميزات CUID
عيوب CUID
ليه CUID حل عملي؟
الـ CUID معناها Collision-resistant Unique Identifier، والهدف الأساسي منه:
- يكون أبسط من UUID
- أصغر في الحجم للتخزين
- أسهل في القراءة
- مقاوم لأي collision حتى في الأنظمة الكبيرة

CUID بيتكون من إيه؟
الـ CUID متقسم لعدة أجزاء:- Prefix ثابت (عادة حرف “c”)

بيميز كل CUID عن باقي أنواع الـ IDs. - Timestamp

عشان الـ IDs تبقى مرتبة زمنيًا. - Counter

بيت increment مع كل ID جديد لتقليل التكرار. - Fingerprint

بيعتمد على الجهاز أو البيئة اللي تولد فيها الـ CUID، عشان يضيف طبقة حماية. - Random block

بيزود الأمان ويقلل احتمالية التكرار أو collision.
شكل الـ CUID
مثال على CUID: ckbq9y4hf0001gq5t4q9k5s7f- عبارة عن string مقروء أكتر من UUID
- مش طويل بنفس درجة UUID، وده بيخليه سهل التعامل والنسخ.
مميزات CUID
- مقاومة عالية جدًا لأي collision

تقدر تستخدمه في أنظمة كبيرة من غير خوف من تكرار الـ IDs. - Readable

أسهل في القراءة والفهم من UUID العادي. - Prefix ثابت

بيساعد في تمييز الـ ID بسهولة في أي application. - أسرع وأخف في التخزين والindexing

مقارنة بـ UUID، بيخلي الأداء أفضل ويقلل استهلاك الذاكرة. - مناسب للـ Web Apps وAPIs

لو عايز IDs consistent يعني شكل ثابت وسهل التعامل معاه.
عيوب CUID
- مش standard رسمي زي UUID

يعني interoperability مع أنظمة تانية محتاجة انتباه. - مش مشهور زي NanoID أو ObjectId

استخدامه أقل من الحلول التانية. - أطول من NanoID لكنه أقصر من UUID

فممكن مش يكون الخيار الأنسب لو عايز IDs super قصيرة.
ليه CUID حل عملي؟
- IDs readable + collision-resistant + lightweight
- مناسب لأي Web App أو API محتاجة IDs ثابتة وسهلة التعامل.
- بيوفر توازن بين الحجم، الأمان، والسهولة في الاستخدام مقارنة بالـ IDs التانية.