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 ទេ ប៉ុន្តែពួកវាមាន lexicographically ក្នុងលំដាប់ដូចគ្នាទៅនឹងធាតុមុន កុំប៉ះទង្គិចជាមួយ 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