UUIDs (ឧបករណ៍បញ្ចូល លេខសម្គាល់ តែមួយគត់ ជា សកល) គឺជាតម្លៃ 128 ប៊ីត ដែលត្រូវបានប្រើក្នុងមូលដ្ឋានទិន្នន័យ ក្នុងចំណោមរបស់ផ្សេងទៀត ដើម្បីកំណត់អត្តសញ្ញាណធាតុតារាងដោយឡែក។ ពួកវាត្រូវបានតំណាងជាខ្សែអក្សរលេខគោលដប់ប្រាំមួយចែកជាប្រាំក្រុមដែលបំបែកដោយសហសញ្ញា (ឧទាហរណ៍: 09fe49b3-4d2b-471c-ac04-36c9e706b85f
) មាន ជាច្រើន ការពិភាក្សា អំពីគុណសម្បត្តិ និងគុណវិបត្តិនៃ UUID នៅក្នុងមូលដ្ឋានទិន្នន័យ - ពួកវាមិនអាចខ្វះបាននៅក្នុងប្រព័ន្ធចែកចាយ។
នៅក្នុងសេវាកម្មមីក្រូ និងកម្មវិធីជួលច្រើន វាមានតម្លៃពិចារណាលើការណែនាំ UUIDs។ ការប្តូរពីប្រភេទទិន្នន័យ BigInteger ទៅ UUID (វ៉ារ្យ៉ង់ដែលអាចតម្រៀបបាននៃ UUID កំណែ 4 ពីការបញ្ជាក់ RFC 4122 ) ក្នុងក្របខ័ណ្ឌ PHP Laravel ត្រូវបានធ្វើបានយ៉ាងឆាប់រហ័ស៖ ដំបូងយើងបង្កើត លក្ខណៈ ថ្មី:
2aa7136d977617159be1834eaf40e871
បន្ទាប់មកយើងបន្ថែមម៉ូដែលទាំងអស់របស់យើង។:
2aa7136d977617159be1834eaf40e871
នៅក្នុង Laravel 9⁺ នេះកាន់តែងាយស្រួលជាងមុន៖ នៅទីនេះយើងមានមុខងារ HasUuids រួចរាល់សម្រាប់ប្រើប្រាស់ហើយ។ ម៉្យាងទៀត ក្របខណ្ឌនេះក៏ផ្តល់នូវការគាំទ្រសម្រាប់ប្រភេទទិន្នន័យដែលពាក់ព័ន្ធ ប៉ុន្តែនៅតែមិនស្គាល់ប្រភេទទិន្នន័យ ULID ដែលអាចគួរឱ្យចាប់អារម្មណ៍ ដោយសារការអាន និងការតម្រៀបបានប្រសើរជាងមុន។
ផ្នែកដ៏លំបាកគឺការផ្ទេរទិន្នន័យដែលមានស្រាប់។ ប្រហែលជាមួយអាចបន្តដូចខាងក្រោម:
- បន្ថែមជួរឈរ UUID ថ្មីជាមួយនឹងតម្លៃទទេទៅតារាងទាំងអស់។
(នីមួយៗផ្អែកលើជួរឈរសំខាន់ៗ និងគន្លឹះបរទេស) - សរសេរតម្លៃ UUID ទៅជួរឈរថ្មី។
(ជាមួយនឹងកូនសោចម្បងឡើងទៅបូកនឹងសោបរទេសដែលបានធ្វើបច្ចុប្បន្នភាព) - លុបជួរឈរដើម
- ប្តូរឈ្មោះជួរឈរថ្មី។
មានបញ្ហាប្រឈមជាច្រើននៅទីនេះ៖ ដំណើរការចំណាកស្រុកត្រូវចំណាយពេលយូរ ហើយជួរឈរថ្មីត្រូវបានបន្ថែមនៅខាងចុងតារាង (ដំណោះស្រាយដែលអាចធ្វើបាន៖ ជួរឈររមណីយដ្ឋាន )។ វិធីផ្ទាល់ច្រើនជាងនេះគឺការបំប្លែងជួរឈរដោយផ្ទាល់។
ប្រសិនបើអ្នកដាក់នោះ។ PostgreSQL មួយ អ្នកអាច (បន្ទាប់ពីការបម្រុងទុកពីមុន ជាការពិត) ដំណើរការសំណួរខាងក្រោម ឧទាហរណ៍ (មុនពេលដែលអ្នកអាចលុបតារាងទាំងអស់ដែលអ្នកមិនរាប់បញ្ចូលក្នុង Z ។ 19
/31
ជំនួស ក៏ដូចជាច្បាប់ពិសេសផ្ទាល់ខ្លួននៅក្នុង Z. 37
/39
បន្ថែម) និងចម្លងរាល់សំណួរដែលបានបង្កើតពីវា។:
2aa7136d977617159be1834eaf40e871
ប្រសិនបើឥឡូវនេះអ្នកដំណើរការសំណួរដែលបានបង្កើតជាមួយគ្នា អ្នកបានផ្ទេរមូលដ្ឋានទិន្នន័យក្នុងរយៈពេលដ៏ខ្លី។ ខណៈពេលដែល UUIDs ដែលបង្កើតដូច្នេះមិនអនុលោមតាមការបញ្ជាក់ v4 ពួកវាមាន lexigraphically តាមលំដាប់ដូចគ្នានឹងធាតុមុន កុំប៉ះទង្គិចជាមួយ UUID ថ្មី (នៅក្នុងក្រុមទី 3 នៅក្នុង v4 តែងតែមាន 4
, តែងតែមានមួយនៅក្នុងវ៉ារ្យ៉ង់ដែលបានធ្វើចំណាកស្រុក 0
) ដែលមានន័យថា UUID ថ្មីតែងតែធំជាង UUIDs ដែលបានធ្វើចំណាកស្រុក។
បន្ទាប់ពីនោះ វាត្រូវបានណែនាំឱ្យលុបឃ្លាំងសម្ងាត់ Laravel ទាំងអស់ (php artisan cache:clear && php artisan route:clear && php artisan config:clear && php artisan view:clear && composer dump-autoload && rm -rf bootstrap/cache/*/*
) និងវគ្គដែលកំពុងដំណើរការ (rm -f storage/framework/sessions/*
) ទៅទទេ។ ជាការពិតណាស់ រឿងទាំងមូលក៏អាចត្រូវបានអនុវត្តនៅក្នុងការធ្វើចំណាកស្រុក Laravel ផងដែរ។:
2aa7136d977617159be1834eaf40e871
បន្ទាប់ពីការបំប្លែងរួច គេប្រើការធ្វើចំណាកស្រុកពេលអនាគតជំនួសវិញ។ bigIncrements
ឬ។ bigInteger
បន្ទាប់មក uuid
:
2aa7136d977617159be1834eaf40e871