Ama-UUID kusizindalwazi

Ama-UUIDs (Izihlanganisi ze- ID eziyingqayizivele) zingamanani angu-128-bit asetshenziswa kusizindalwazi, phakathi kwezinye izinto, ukuhlonza okufakiwe kwethebula ngokukhethekile. Amelwe njengeyunithi yezinhlamvu enehexadecimal ehlukaniswe ngamaqembu amahlanu ahlukaniswe ngamakhonco (Isibonelo: 09fe49b3-4d2b-471c-ac04-36c9e706b85f). Nakhu amaningi Izingxoxo mayelana nezinzuzo kanye nokubi kwama-UUID kusizindalwazi - abalulekile ezinhlelweni ezisabalalisiwe.


Kumasevisi amancane kanye nezinhlelo zokusebenza ezihlala abantu abaningi, ngakho-ke kufanelekile ukucabangela ukwethula ama-UUID. Ukushintsha usuka ohlotsheni lwedatha i-BigInteger uye ku-UUID (okuhlukile okuhlelekayo kwe-UUID inguqulo 4 kusukela ekucacisweni kwe- RFC 4122 ) kuhlaka lwe-PHP I- Laravel yenziwa ngokushesha: Okokuqala, sakha isici esisha.:

2aa7136d977617159be1834eaf40e871

Bese sengeza wonke amamodeli ethu:

2aa7136d977617159be1834eaf40e871

Ku-Laravel 9⁺ lokhu kulula nakakhulu: lapha sesivele sinesici se- HasUuids esilungele ukusetshenziswa. Kungenjalo, uhlaka luphinde lunikeze ukwesekwa kokuhlobene, kodwa nokho uhlobo lwedatha olungaziwa ULID , olungathakazelisa ngenxa yokufundeka okungcono nokuhleleka.

Ingxenye enzima ukuthuthwa kwedatha ekhona. Cishe eyodwa ingaqhubeka kanje:

  1. Engeza amakholomu amasha e-UUID anamanani angenalutho kuwo wonke amathebula
    (ngalinye lisekelwe kuwo wonke amakholomu okhiye abayinhloko nabangaphandle)
  2. Bhala amanani e-UUID kumakholomu amasha
    (ngokhiye abakhuphukayo abayinhloko kanye nokhiye bangaphandle ababuyekeziwe)
  3. Susa amakholomu angempela
  4. Qamba kabusha amakholomu amasha

Kunezinselelo ezimbalwa lapha: Inqubo yokufuduka ithatha isikhathi eside futhi amakholomu amasha anezelwa ekupheleni kwethebula (isixazululo esingaba khona: amakholomu okuvakasha ). Indlela eqondile kakhulu ukuguqula amakholomu ngokuqondile.

Uma ubeka lokho I-PostgreSQL kokukodwa, ungakwazi (emva kokwenza isipele kwangaphambilini, kunjalo) uqalise umbuzo olandelayo, isibonelo (ngaphambi kwalokho ungasusa wonke amathebula ongawafaki ku-Z. 19/31 buyisela, kanye nemithetho ekhethekile ku-Z. 37/39 add) bese ukopisha yonke imibuzo ekhiqizwe kuyo:

2aa7136d977617159be1834eaf40e871

Uma manje nisebenzisa imibuzo ekhiqiziwe ndawonye, ​​uthuthele isizindalwazi ngesikhathi esifushane. Nakuba ama-UUID akhiqizwa kanjalo engahambisani nokucaciswa kwe-v4, ngokwesichazamazwi alandelana ngendlela efanayo neyangaphambilini, awangqubuzani nama-UUID amasha (eqenjini lesi-3 ku-v4 kuhlala kukhona 4, njalo eyodwa kokuhlukile okuthuthiwe 0), okusho futhi ukuthi ama-UUID amasha ahlala emakhulu kunama-UUID athuthiwe.

Ngemuva kwalokho kunconywa ukususa wonke ama-cache we-Laravel (php artisan cache:clear && php artisan route:clear && php artisan config:clear && php artisan view:clear && composer dump-autoload && rm -rf bootstrap/cache/*/*) kanye nezikhathi ezisebenzayo (rm -f storage/framework/sessions/*) ukuthulula. Vele, yonke into ingenziwa futhi ngaphakathi kokufuduka kweLaravel:

2aa7136d977617159be1834eaf40e871

Ngemva kokuguqulwa umuntu usebenzisa ekufudukeni kwesikhathi esizayo esikhundleni salokho bigIncrements noma. bigInteger ke uuid:

2aa7136d977617159be1834eaf40e871

Emuva