UUID / ULID / NanoID Үүсгэгч

UUID v4, UUID v7, ULID, болон NanoID утгуудыг өөрийн хөтөч дээрээ шууд үүсгээрэй.

Формат

122 битийн цэвэр санамсаргүй байдал — дараалалгүй, тааварлах боломжгүй.

Үүсгэсэн ID-нууд
Бэлэн.

Таны ID-нуудыг хөтчийн найдвартай санамсаргүй тоо үүсгэгчээр локал байдлаар үүсгэдэг. BroBroGo руу юу ч илгээгдэхгүй.

Түгээмэл асуултууд

UUID v4, UUID v7, ULID, болон NanoID хоорондоо ямар ялгаатай вэ?

UUID v4 нь танил 36 тэмдэгттэй форматаар 122 битийн цэвэр санамсаргүй байдлыг хангадаг боловч түүний санамсаргүй дараалал нь өгөгдлийн сангийн индексжүүлэлтэд тийм ч тохиромжтой биш байдаг. UUID v7 нь ижил хэлбэрийг хадгалахын зэрэгцээ эхэндээ миллисекундын хугацааны тэмдэгт (timestamp) агуулдаг тул ID-нууд үүсгэсэн цагаараа эрэмбэлэгддэг — энэ нь primary key-д маш тохиромжтой. ULID нь ижил хугацааны дарааллыг арай богино, том жижиг үсэг ялгадаггүй 26 тэмдэгттэй бичвэрээр шийддэг. NanoID нь эрэмбэлэлтийг алгасаж, илүү жижиг, бүрэн өөрчлөх боломжтой ID үүсгэдэг — та урт болон тэмдэгтийн багцыг өөрөө сонгох боломжтой.

Эдгээр ID-нууд тааварлах боломжгүй хэмжээний санамсаргүй байж чадах уу?

Тийм — ID бүрийг тааварлах боломжгүй, криптографын хувьд найдвартай хөтчийн санамсаргүй тоо үүсгэгчээр үүсгэдэг. UUID v4 болон NanoID-ийн анхдагч тэмдэгтүүд нь 100 гаруй битийн санамсаргүй байдлыг агуулдаг. UUID v7 болон ULID нь эдгээр битийн 48 орчмыг эхний хугацааны тэмдэгтэд зориулдаг тул хугацааны угтвартай форматуудыг нууц түлхүүр гэхээсээ илүү эрэмбэлэх боломжтой ID гэж үзэх нь зүйтэй.

Би NanoID-ийн урт болон тэмдэгтийн багцыг өөрчилж болох уу?

Тийм — NanoID руу шилжихэд энэ хэрэгсэл нь уртын гулсуур (анхдагчаар 21 тэмдэгт) болон засах боломжтой тэмдэгтийн талбарыг харуулна. Уртыг багасгах эсвэл тэмдэгтийн багцыг цөөлөх нь давхцах магадлалыг (collision) нэмэгдүүлдэг тул тэмдэгтийн багцыг цөөлсөн бол уртыг нь урт хэвээр үлдээхийг зөвлөж байна.

Өвөрмөц танигчдын ялгаа ба тэдгээрийн бүтэц

Өгөгдлийн сангийн зохион байгуулалт, аюулгүй байдал болон өгөгдөл удирдлагын системд өвөрмөц танигч (ID) үүсгэх хэрэгцээ байнга гардаг. Энэхүү хэрэгсэл нь UUID v4, UUID v7, ULID, болон NanoID гэсэн дөрвөн өөр төрлийн форматыг дэмждэг. Төрөл бүр нь өөрийн гэсэн бүтэц, урт болон санамсаргүй байдлын шинж чанартай байдаг.

  • UUID v4: Энэ формат нь 36 тэмдэгтийн урттай бөгөөд 122 битийн цэвэр санамсаргүй байдлыг агуулдаг. Энэ нь ямар нэгэн цаг хугацааны дараалалгүй, бүрэн тааварлах боломжгүй шинж чанартай.
  • UUID v7: UUID v4-тэй адил 36 тэмдэгтийн урттай боловч эхний хэсэгтээ миллисекундын хугацааны тэмдэгт (timestamp) агуулдаг. Энэ нь ID-нуудыг үүсгэсэн цаг хугацаагаар нь эрэмбэлэх боломжийг олгодог.
  • ULID: Энэ нь 26 тэмдэгтээс бүрдэх, том жижиг үсэг ялгадаггүй бичвэр юм. UUID v7-ийн нэгэн адил хугацааны тэмдэгтээр эхэлдэг тул цаг хугацааны дарааллаар эрэмбэлэгддэг.
  • NanoID: Анхдагч урт нь 21 тэмдэгт байдаг бөгөөд цаг хугацааны дараалалгүй, авсаархан формат юм. Хэрэглэгч өөрийн хэрэгцээнд тохируулан урт болон ашиглах тэмдэгтийн багцыг бүрэн өөрчлөх боломжтой.

Санамсаргүй байдал ба криптографын найдвартай байдал

Эдгээр өвөрмөц танигчийг үүсгэхдээ криптографын хувьд найдвартай, тааварлах боломжгүй хөтчийн санамсаргүй тоо үүсгэгчийг ашигладаг. UUID v4 болон NanoID-ийн анхдагч тэмдэгтүүд нь 100 гаруй битийн санамсаргүй байдлыг хангаж чаддаг.

Харин цаг хугацаанд суурилсан UUID v7 болон ULID форматууд нь эхний 48 орчим битийг хугацааны тэмдэгтэд зориулдаг. Иймд эдгээр хугацааны угтвартай форматуудыг нууц түлхүүр болгон ашиглахаас илүүтэйгээр өгөгдлийн санд эрэмбэлэх боломжтой ID хэлбэрээр ашиглахад илүү тохиромжтой байдаг.

Өгөгдлийн сангийн индексжүүлэлт ба цаг хугацааны дараалал

Өгөгдлийн сангийн администраторууд болон хөгжүүлэгчдийн хувьд үүсгэсэн цаг хугацаагаар нь эрэмбэлэх боломжтой primary key ашиглах нь өгөгдлийн сангийн индексжүүлэлтийн гүйцэтгэлийг сайжруулахад чухал ач холбогдолтой.

UUID v7 болон ULID форматууд нь үүсгэсэн цаг хугацаагаар нь эрэмбэлэх боломжийг олгодог хэдий ч нэг миллисекунд дотор үүсгэгдсэн ID-нуудын хувьд хатуу дарааллыг баталгаажуулдаггүй. Энэ нь маш богино хугацаанд олноор үүсгэгдсэн ID-нуудын байрлал бага зэрэг зөрөх боломжтой гэсэн үг юм.

Тэмдэгтийн багц, урт болон давхцах магадлал

NanoID форматыг ашиглах үед ID-ийн урт болон тэмдэгтийн багцыг өөрчлөх нь давхцах магадлалд (collision) шууд нөлөөлдөг. Хэрэв та ID-ийн уртыг богиносгох эсвэл тэмдэгтийн багцыг цөөлөх сонголт хийвэл давхцах магадлал нэмэгдэнэ. Иймд тэмдэгтийн багцыг цөөлсөн тохиолдолд уртыг нь урт хэвээр үлдээх нь аюулгүй байдлыг хангахад тусална.

Энэхүү хэрэгсэлд NanoID-ийн уртыг 2-оос 36 тэмдэгтийн хооронд тохируулах боломжтой бөгөөд анхдагч урт нь 21 байдаг. Мөн NanoID-ийн тэмдэгтийн багцыг өөрчлөхөд дараах дүрмийг баримтална:

  • Тэмдэгтийн багцад дор хаяж 2 өөр тэмдэгт байх шаардлагатай.
  • Хэрэв тэмдэгтийн багцыг ганцхан тэмдэгт болгон өөрчилбөл үр дүн шууд цэвэрлэгдэж, ID-ийн тоо 0 болж, "Бүгдийг хуулах" товч идэвхгүй болно. Энэ үед дэлгэц дээр "Тэмдэгтийн багцад дор хаяж 2 өөр тэмдэгт байх шаардлагатай." гэсэн алдааны мэдээлэл гарна.

Хэрэглэгчийн тохиргоо ба ажиллагааны дүрэм

Энэхүү хэрэгсэл нь нэг удаад 1-ээс 100 хүртэлх тооны ID-г зэрэг үүсгэх боломжийг олгодог. Хэрэглэгч дараах тохиргоонуудыг хийх боломжтой:

  • Формат сонгох: UUID v4, UUID v7, ULID, эсвэл NanoID.
  • Тоо хэмжээ: 1-ээс 100 хүртэлх тоог зааж өгөх.
  • Том үсгээр: UUID форматын үсгүүдийг том үсгээр харуулах эсэхийг шийдэх сонголт.
  • Зураас оруулах: UUID форматад зураас оруулах эсэхийг удирдах сонголт.

Хэрэгслийн аль нэг сонголтыг өөрчлөхөд ID-нууд автоматаар шинээр үүсгэгдэнэ. Үүсгэсэн ID-нуудыг хуулж авахын тулд тухайн ID дээр дарахад санах ойд шууд хуулагдана. Мөн "Бүгдийг хуулах" товчийг ашиглан бүх ID-г нэг дор хуулах боломжтой бөгөөд энэ үед "Бүгдийг хуулсан!" гэсэн төлөв харагдана. Хэрэгсэл бэлэн байх үед "Бэлэн.", харин ID-нуудыг үүсгэж дууссаны дараа "Үүсгэсэн." гэсэн төлөвүүд тус тус харагдана.

Нууцлал ба өгөгдөл боловсруулалт

Таны ID-нуудыг хөтчийн найдвартай санамсаргүй тоо үүсгэгчээр локал байдлаар үүсгэдэг. BroBroGo руу ямар нэгэн өгөгдөл илгээгдэхгүй бөгөөд бүх боловсруулалт зөвхөн таны ашиглаж буй хөтөч дотор явагдана.

Түгээмэл асуултууд

UUID v4, UUID v7, ULID, болон NanoID хоорондоо ямар ялгаатай вэ? UUID v4 нь танил 36 тэмдэгттэй форматаар 122 битийн цэвэр санамсаргүй байдлыг хангадаг боловч түүний санамсаргүй дараалал нь өгөгдлийн сангийн индексжүүлэлтэд тийм ч тохиромжтой биш байдаг. UUID v7 нь ижил хэлбэрийг хадгалахын зэрэгцээ эхэндээ миллисекундын хугацааны тэмдэгт (timestamp) агуулдаг тул ID-нууд үүсгэсэн цагаараа эрэмбэлэгддэг — энэ нь primary key-д маш тохиромжтой. ULID нь ижил хугацааны дарааллыг арай богино, том жижиг үсэг ялгадаггүй 26 тэмдэгттэй бичвэрээр шийддэг. NanoID нь эрэмбэлэлтийг алгасаж, илүү жижиг, бүрэн өөрчлөх боломжтой ID үүсгэдэг — та урт болон тэмдэгтийн багцыг өөрөө сонгох боломжтой.

Эдгээр ID-нууд тааварлах боломжгүй хэмжээний санамсаргүй байж чадах уу? Тийм — ID бүрийг тааварлах боломжгүй, криптографын хувьд найдвартай хөтчийн санамсаргүй тоо үүсгэгчээр үүсгэдэг. UUID v4 болон NanoID-ийн анхдагч тэмдэгтүүд нь 100 гаруй битийн санамсаргүй байдлыг агуулдаг. UUID v7 болон ULID нь эдгээр битийн 48 орчмыг эхний хугацааны тэмдэгтэд зориулдаг тул хугацааны угтвартай форматуудыг нууц түлхүүр гэхээсээ илүү эрэмбэлэх боломжтой ID гэж үзэх нь зүйтэй.

Би NanoID-ийн урт болон тэмдэгтийн багцыг өөрчилж болох уу? Тийм — NanoID руу шилжихэд энэ хэрэгсэл нь уртын гулсуур (анхдагчаар 21 тэмдэгт) болон засах боломжтой тэмдэгтийн талбарыг харуулна. Уртыг багасгах эсвэл тэмдэгтийн багцыг цөөлөх нь давхцах магадлалыг (collision) нэмэгдүүлдэг тул тэмдэгтийн багцыг цөөлсөн бол уртыг нь урт хэвээр үлдээхийг зөвлөж байна.