UUID چیست؟ (تعریف علمی)
واژه UUID مخفف "Universally Unique Identifier" به معنی "شناسه منحصر به فرد جهانی" است. این شناسه یک عدد ۱۲۸ بیتی است که برای برچسبگذاری اطلاعات در سیستمهای کامپیوتری استفاده میشود. هدف اصلی UUID این است که بتوان بدون نیاز به یک مرجع مرکزی (مانند دیتابیس متمرکز)، شناسههایی تولید کرد که در تمام جهان یکتا باشند. مایکروسافت همین استاندارد را با نام GUID (Globally Unique Identifier) استفاده میکند.
ساختار استاندارد (نسخه ۴)
یک UUID استاندارد از ۳۲ رقم هگزادسیمال (Hexadecimal) تشکیل شده که در ۵ گروه با خط تیره جدا میشوند:
M: نشاندهنده نسخه UUID است (برای حالت رندوم عدد 4).N: نشاندهنده Variant است (معمولاً 8, 9, A یا B).x: ارقام هگزادسیمال تصادفی (0-9 و a-f).
اگر در هر ثانیه ۱ میلیارد UUID تولید کنید، حدود ۸۵ سال طول میکشد تا احتمال ۵۰٪ وجود داشته باشد که یک شناسه تکراری تولید شود.
کاربردهای عملی در پروژهها
استفاده به عنوان ID در دیتابیسهای توزیع شده (مثل MongoDB یا Cassandra) که امکان استفاده از ID افزایشی (Auto-Increment) وجود ندارد.
ایجاد توکنهای احراز هویت موقت برای کاربران در وبسایتهای فروشگاهی یا سامانههای بانکی.
جلوگیری از بازنویسی فایلها هنگام آپلود تصاویر کاربران با تغییر نام فایل به یک UUID تصادفی.
اشتباهات رایج برنامهنویسان
- ذخیره UUID به صورت رشته (String) در دیتابیسهای SQL قدیمی (بهتر است به صورت Binary(16) ذخیره شود).
- تصور اینکه UUID ها به ترتیب زمان تولید مرتب میشوند (نسخه ۴ کاملاً تصادفی است و ترتیب زمانی ندارد).
- تلاش برای ساخت UUID با توابع رندوم ضعیف (مثل Math.random) که باعث تکراری شدن کلیدها میشود.
- استفاده از UUID برای URL های عمومی (سئو پسند نیست و خوانایی ندارد).
- حذف خط تیرهها بدون در نظر گرفتن استاندارد سیستم مقصد.
