X'inhu ULID u kif jaħdem il-ġeneratur tagħna
Din il-paġna tippermettilek tagħżel ULID bħala l-format tal-identifikatur, tagħżel kemm trid IDs (bejn 1 u 100), u immedjatament il-ġeneratur joħloq lista ta’ ULIDs uniċi u li jistgħu jiġu ordnati skont iż-żmien. Kull ULID jidher bħala string ta’ 26 karattru, li huwa sensitiv għall-każ (case‑insensitive) u lest biex tikkopjah waħdu jew kollha f’daqqa.
ULID huwa format ta’ identifikatur li huwa iqsar minn UUID – 26 karattru minflok 36 – u juża biss l-alfabett Crockford base32. Dan ifisser li l-ULIDs m'għandhomx hyphens, huma case‑insensitive, u huma siguri għall-URL mingħajr ma jkollok bżonn tagħmel escaping. L-ewwel 10 karattru jikkodifikaw timestamp b’preċiżjoni ta’ millisekonda, u l-bqija 16 karattru (80 bits) huma każwali. Il-valur totali huwa 128 bits, l-istess daqs ta’ UUID.
Il-ġenerazzjoni kollha ssir lokalment fil-browser tiegħek, billi tuża crypto.getRandomValues(). L-ebda informazzjoni ma tintbagħat lejn server.
Differenzi ewlenin bejn ULID, UUID u formati oħra
L-iktar differenza notevoli hija t-tul: ULID għandu 26 karattru, filwaqt li UUID (verżjoni 4) għandu 36 karattru, inklużi erba’ hyphens. ULID ma juża l-ebda hyphen, u l-alfabett Crockford base32 huwa magħmul minn 0-9 u A-Z, imma mingħajr l-ittri I, L, O, u U biex jiġi evitat konfużjoni viżwali (pereżempju I u 1, O u 0). Dan jagħmel l-ULIDs faċli biex jinqraw u jiġu traskritti manwalment.
Barra minn hekk, ULID huwa sortable skont iż-żmien tal-ħolqien, grazzi għat-timestamp inkorporat. Dan ifisser li jekk tiġġenera żewġ ULIDs f’mumenti differenti, l-ewwel wieħed (l-iktar qadim) ikollu string iżgħar (lessikografikament) mit-tieni wieħed. Din il-proprjetà hija utli ferm għal databases li jużaw B‑tree indexing, għax il-valuri l-ġodda jiddaħħlu fil-qrib ta’ xulxin, aktar milli jiġu mferrxin b'mod każwali. B'kuntrast, UUID v4 huwa kompletament każwali u jista' jikkawża frammentazzjoni tal-indiċi.
Meta mqabbel ma' NanoID, li għandu tul varjabbli, ULID għandu daqs fiss ta' 26 karattru u jipprovdi garanzija ta' 128 bits ta' spazju. NanoID spiss juża alfanumeriċi iżda jista' jkun iqsar jekk tuża charset iżgħar, imma mhux sortable b'mod nattiv.
L-istruttura interna ta' ULID: timestamps u każwalità
Kull ULID huwa magħmul minn żewġ partijiet: l-ewwel 10 karattru huma l-kodifikazzjoni ta' timestamp ta' 48 bits, li jirrappreżenta l-għadd ta' millisekondi mill-epoch tal-UNIX (1 ta' Jannar 1970). Din il-parti tippermetti ordni kronoloġika. Il-kumplament ta' 16 karattru (80 bits) huma każwali, u jiġu ġġenerati b'mod kriptografikament sigur.
Il-kodifikazzjoni tintuża Crockford Base32, li taħdem hekk: kull karattru jirrappreżenta 5 bits (għax 2^5 = 32). Għalhekk, 10 karattru jkopru 50 bits, imma t-timestamp għandu 48 bits, u l-bqija (2 bits) huma zero-padded. Iż-żewġ karattru żejda fil-parti tat-timestamp mhux problema, għax l-iskema tutilizza l-ispazju kollu. Bl-istess mod, 16 karattru każwali jagħmlu 80 bits preċiżi.
Minħabba l-komponent taż-żmien, ULIDs mhumiex garantiti li jkunu ordnati b'mod strett jekk jiġu ġġenerati fl-istess millisekonda. F'dak il-każ, l-ordni bejniethom tiddependi fuq il-parti każwali, li tista' tagħti ordni differenti. Għal ħtiġijiet fejn l-ordni eżatta hija kritika (pereżempju sistemi ta' messaġġi f'ħin reali), jista' jkollok bżonn mekkaniżmu addizzjonali.
Il-probabbiltà ta' kolliżjoni hija estremament baxxa: b'80 bits ta' każwalità, għandek 2^80 valuri possibbli. Anke jekk tiġġenera miljuni ta' ULIDs kull sekonda, iċ-ċans ta' duplikazzjoni huwa negliġibbli għal ħafna użi prattiċi.
Kif tuża l-paġna: inputs u outputs
Meta tidħol fil-paġna, l-ewwel għażla hija l-format – trid tagħżel ULID. Imbagħad, trid tiddaħħal numru bejn 1 u 100 għall-għadd ta' IDs li trid tiġġenera. Hekk kif tibdel kwalunkwe għażla, il-lista ta' IDs tiġi riġenerata awtomatikament.
L-output juri lista ta' ULIDs, kull wieħed f'ringiela separata, b'26 karattru mingħajr hyphens u kollha bl-istess daqs. Tista' tikklikkja fuq ULID individwali biex tikkopjah fil-clipboard, jew tuża buttuna "Ikkopja Kollha" biex tikkopja l-lista kollha. Stat jidher: "Ready.", "Generated.", u "Copied all!" meta tkun ikkopjajt kollox.
M'hemm l-ebda toggle għal uppercase jew hyphens għax ULID huwa inerentement case‑insensitive (tista' tuża kemm ittri kbar kif ukoll żgħar, u huma interpretati l-istess) u m'għandux hyphens. L-uniku output huma l-ULIDs nfushom, flimkien ma' għadd li juri kemm ġew ġġenerati.
Min għandu bżonn ULIDs u fejn jintużaw
- Żviluppaturi tal-web u mobbli li għandhom bżonn identifikaturi iqsar u siguri għall-URLs, li jistgħu jiġu ordnati skont iż-żmien mingħajr ma jżidu kolonna separata ta' timestamp.
- Amministraturi tad-databases li jfasslu primary keys għal tabelli b'ħafna kitbiet. Minħabba li ULIDs huma monotonically increasing (kważi dejjem jiżdiedu), l-inserzjonijiet f'B-tree jsiru aktar effiċjenti, u l-indeċi jibqgħu kompatti.
- Inġiniera tas-sistemi distribwiti fejn l-identifikaturi għandhom ikunu uniċi f'ħafna nodi iżda wkoll sortabbli. ULIDs jippermettu ordni globali mingħajr ma jkollok bżonn server ċentrali.
- Disinjaturi tal-APIs li iridu juru IDs pubblikament li huma diffiċli biex jiġu indovinati iżda faċli għall-bniedem – mingħajr konfużjoni ta' ittri kbar/żgħar u mingħajr hyphens li jistgħu jintilfu.
ULIDs huma wkoll popolari f'sistemi bħal messaġġier, log entries, u IDs ta' oġġetti f'bażijiet ta' data fejn l-ordni kronoloġika hija importanti iżda l-identifikatur għandu jkun qasir.
Mistoqsijiet frekwenti (FAQ)
1. X'inhi d-differenza bejn ULID u UUID v7?
Iż-żewġ formati jinkorporaw timestamp, imma ULID juża Crockford base32 u m'għandux hyphens, filwaqt li UUID v7 juża l-format standard tal-UUID b'hexadecimal u hyphens. ULID għandu 26 karattru, UUID v7 għandu 36.
2. Jista' ULID jiġi kkonvertit lura għat-timestamp?
Iva. L-ewwel 10 karattru jikkodifikaw it-timestamp f'millisekondi. Tista' tuża librerija biex tiddekodifikahom, imma l-paġna tagħna ma toffrix din il-funzjoni.
3. X'jiġri jekk niġġenera aktar minn 100 ULID?
Il-ġeneratur jaċċetta biss bejn 1 u 100. Jekk iddaħħal numru barra minn dan, mhux se jaħdem. Trid tiġġenera f'lottijiet iżgħar jekk għandek bżonn aktar.
4. Il-ULIDs huma siguri?
Il-parti każwali hija ġġenerata b'mod kriptografikament sigur (crypto.getRandomValues), għalhekk mhumiex prevedibbli. Madankollu, peress li t-timestamp huwa inkluż, xi ħadd jista' jara meta ġie maħluq l-ID jekk jiddekodifika l-ewwel 10 karattru.
5. Il-paġna taħdem offline?
Il-ġenerazzjoni ssir kollha fil-browser, m'hemmx bżonn ta' konnessjoni tal-internet wara li l-paġna tkun inngħabbiet. Jekk tagħti l-paġna offline (permezz ta' cache), tista' tużaha.
6. Għandi bżonn nagħżel bejn uppercase u lowercase?
Le. ULID huwa case‑insensitive, għalhekk tista' tuża kwalunkwe tip ta' ittra. Il-ġeneratur tagħna joħroġhom bl-uppercase (il-konvenzjoni standard), imma jekk tikkopjahom f'sistema li tikkonvertihom għal lowercase, xorta jaħdmu.