UUID Generator
Takrorlanmas UUID v4 identifikatorlarni bir bosishda yarating — bittadan mingtagacha, kerakli ko'rinishda.
UUID nima
UUID (Universally Unique Identifier) — 128 bitlik identifikator, odatda 36 belgili matn ko'rinishida yoziladi:f47ac10b-58cc-4372-a567-0e02b2c3d479. Uning maqsadi —markazlashgan hisoblagichsiz takrorlanmas ID olish. Ya'ni ikkita turli server, telefon yoki brauzer bir vaqtda ID yaratsa ham, ular to'qnashmaydi.
v4 nima degani
UUID ning bir necha versiyasi bor. v4 — tasodifiy sonlardan yasaladi (122 bit tasodif). Bu vositacrypto.randomUUID() dan foydalanadi — brauzerning kriptografik tasodif manbai, ya'ni Math.random() emas. Shuning uchun natija sessiya identifikatori yoki maxfiy havola uchun ham yaroqli.
Uchinchi guruhning birinchi belgisi doim 4, to'rtinchi guruhning birinchi belgisi esa 8, 9,a yoki b bo'ladi — bu versiya va variant belgisi. Yaratilgan UUID larda buni ko'rishingiz mumkin.
Takrorlanish ehtimoli qanchalik kichik
Amalda nolga teng. Bir xil UUID ikki marta chiqishi uchun taxminan 103 trillion UUID yaratish kerak — va bunda ham ehtimol milliarddan bir bo'ladi. Shuning uchun UUID ni bemalol asosiy kalit sifatida ishlatish mumkin.
Nega id = 1, 2, 3 o'rniga UUID
- ID ni server bermaydi — mijoz (brauzer, mobil ilova) yozuvni yaratmasdan oldin ham ID ni biladi. Oflayn ishlaydigan ilovalar uchun bu asosiy sabab.
- Ma'lumot oshkor bo'lmaydi —
/buyurtma/1manzili raqobatchiga sizda nechta buyurtma borligini aytadi. UUID hech narsa aytmaydi. - Bazalarni qo'shish oson — ikki alohida bazani birlashtirganda ketma-ket raqamlar to'qnashadi, UUID lar esa yo'q.
- Manzilni taxmin qilib bo'lmaydi —
/hisobot/2ni qo'lda yozib ko'rish mumkin, UUID li manzilni esa yo'q.
Kamchiliklari ham bor
UUID 16 bayt joy egallaydi (butun son 4 bayt), matn ko'rinishida esa 36 belgi. Katta jadvalda indeks kattalashadi va tasodifiy tartib tufayli yozish sekinlashadi. Bu muhim bo'lsa, vaqt bo'yicha tartiblangan variantlarga (UUID v7, ULID) qarang — ular UUID afzalliklarini saqlab, indeksga do'stona bo'ladi.
Barcha hisob-kitob brauzeringizda bajariladi — kiritgan ma'lumotingiz serverga yuborilmaydi.