UUIDs in database-yada

UUIDs (Qaybaha Aqoonsiga Gaarka ah ee Caalamiga ah) waa 128-bit qiyam ah oo loo isticmaalo database-yada, iyo waxyaabo kale, si gaar ah loo aqoonsado gelinta miiska. Waxay u taagan yihiin sidii xadhkaha hexadecimal oo loo qaybiyay shan kooxood oo ay kala soocaan xargaha (Tusaale ahaan: 09fe49b3-4d2b-471c-ac04-36c9e706b85f). Waxaa jira tiro badan Doodaha ku saabsan faa'iidooyinka iyo khasaarooyinka UUID-yada ku jira xog-ururinta - waa lagama maarmaan in la qaybiyo nidaamyada.


Adeegyada yaryar iyo codsiyada kireysiga badan, sidaas darteed waxaa habboon in la tixgeliyo soo bandhigida UUIDs. Ka beddelashada nooca xogta BigInteger una beddelo UUID (kala duwanaansho la kala sooci karo oo ah nooca UUID 4 ee qeexida RFC 4122 ) ee qaab dhismeedka PHP Laravel si degdeg ah ayaa loo sameeyaa: Marka hore, waxaan abuurnaa sifo cusub:

2aa7136d977617159be1834eaf40e871

Kadibna waxaan ku darnaa dhammaan moodooyinkayaga:

2aa7136d977617159be1834eaf40e871

Gudaha Laravel 9⁺ tani xitaa way fududahay: halkan waxaan horeyba ugu haynay astaanta HasUuids oo diyaar u ah in la isticmaalo. Haddii kale, qaab-dhismeedku waxa kale oo uu bixiyaa taageerada la xidhiidha, laakiin weli waa nooca xogta aan la garanayn ULID , taas oo noqon karta mid xiiso leh sababtoo ah akhrin wanaagsan iyo kala saarid.

Qaybta adagi waa guuritaanka xogta jirta. Qiyaastii mid ayaa ku socon karta sida soo socota:

  1. Ku dar tiirar cusub oo UUID ah oo leh qiimayaal madhan dhammaan miisaska
    (mid kastaa wuxuu ku saleysan yahay dhammaan tiirarka muhiimka ah ee aasaasiga ah iyo kuwa ajnabiga ah)
  2. Ku qor qiimayaasha UUID tiirarka cusub
    (oo leh furayaal hore kor u kacaya iyo furayaal shisheeye oo la cusboonaysiiyay)
  3. Tirtir tiirarka asalka ah
  4. Dib u magacaw tiirar cusub

Waxaa jira caqabado dhowr ah halkan: Geedi socodka socdaalka wuxuu qaataa waqti dheer waxaana tiirar cusub lagu dhejiyaa dhamaadka miiska (xalka suurtagalka ah: tiirarka dalxiiska ). Dariiqo toos ah oo aad u badan ayaa ah in si toos ah loo beddelo tiirarka.

Haddii aad taas dhigto PostgreSQL Mid ka mid ah, waxaad awoodi kartaa (kadib kayd hore, dabcan) inaad socodsiiso su'aalaha soo socda, tusaale ahaan (kahor intaadan tirtirin dhammaan jaantusyada aad ka saartay Z. 19/31 beddelo, iyo sidoo kale xeerar gaar ah oo u gaar ah Z. 37/39 ku dar) oo koobiyo dhammaan weydiimaha ka soo baxay:

2aa7136d977617159be1834eaf40e871

Haddii aad hadda si wada jir ah u wada socodsiisaan weydiimaha la soo saaray, waxa aad ku guurtay kaydka xogta muddo gaaban gudaheed. Halka UUID-yada sidaas lagu soo saaray aysan waafaqsanayn qeexida v4, waxay si qaamuus ahaan u kala horreeyeen qoraaladii hore, ha ku dhicin UUID-yada cusub (kooxda 3aad ee v4 waxaa had iyo jeer jira a 4, had iyo jeer mid ka mid ah kala duwanaanshaha guuray 0), oo sidoo kale ka dhigan in UUID-yada cusub ay had iyo jeer ka weyn yihiin UUID-yada soo guuray.

Intaa ka dib waxaa lagu talinayaa in la tirtiro dhammaan kaydinta Laravelphp artisan cache:clear && php artisan route:clear && php artisan config:clear && php artisan view:clear && composer dump-autoload && rm -rf bootstrap/cache/*/*) iyo fadhiyada orodka (rm -f storage/framework/sessions/*) inuu faaruqiyo. Dabcan, wax walba sidoo kale waxaa lagu hirgelin karaa socdaalka Laravel:

2aa7136d977617159be1834eaf40e871

Beddelka ka dib waxa la isticmaali karaa socdaalka mustaqbalka bigIncrements ama. bigInteger markaas uuid:

2aa7136d977617159be1834eaf40e871

Dib u laabo