UUIDs in databases

UUIDs (Universally Unique Id entifiers) valores 128-biti, qui in databases, inter alia, sunt, ut unice identificatio tabularum notarum. Repraesentantur sicut chorda hexadecimali divisa in quinque circulos ab hyphens separatis (Exemplum: 09fe49b3-4d2b-471c-ac04-36c9e706b85f). est numerosi Discussiones de commodis et incommodis UUIDs in databases - necessariae sunt in systematibus distributis.


In microservices applicationes et multi-tenantiam, ideo consideranda est UUIDs introducendis. Commutatio e speciebus data BigInteger ad UUID (formabile variantium UUID versionis 4 ex RFC 4122 specificatione) in compage PHP Laravel cito fit: Primum novam lineamentum creamus.:

2aa7136d977617159be1834eaf40e871

Addimus omnia exempla:

2aa7136d977617159be1834eaf40e871

In Laravel 9⁺ hoc etiam facilius est: hic iam habemus in HasUuids lineamentis paratis uti. Vel, compages quoque subsidia relata praebet, sed adhuc magis ignotas notitias generis ULID , quod melius esse potest ob commoditatem et commoditatem.

Difficilis pars est migratio notitiarum existentium. Dure potest procedere:

  1. Novas columnas UUID cum valoribus inanibus omnibus tabulis addere
    (Quisque secundum omnes primas et externas clavis columnas)
  2. Scribere valores UUID novis columnis
    (Ascendendo primaria claves plus updated claves aliena)
  3. Originali columnas delere
  4. Rename columnas novas

Plures provocationes hic sunt: ​​Migratio processus longum tempus accipit et novae columnae ad finem tabulae apponuntur (solutio possibilis: columnae conveniunt ). Multo rectior via est columnas directe transformare.

Quod si posuistis PostgreSQL unum, potes (post tergum utique priorem) interrogationem sequentem currere, e.g. (antequam quod omnes tabulas delere potes quas in Z excludas. 19/31 repone, nec non proprias regulas in Z. 37/39 add) and copies all queries generatae ex eo:

2aa7136d977617159be1834eaf40e871

Si nunc inquisitiones generatae simul curris, datorum intra breve tempus migrasti. Dum UUIDs ita generatae specificationi v4 non conformantur, lexigraphice in eodem ordine ac in infimis prioribus non colliduntur cum novis UUIDs (in 3 globo in v4 semper est. 4, semper in unum migrantium variant 0), quod etiam significat novas UUIDs semper maiores esse quam UUIDs migrantium.

Post hoc commendatur omnes thesauros Laravel delere (php artisan cache:clear && php artisan route:clear && php artisan config:clear && php artisan view:clear && composer dump-autoload && rm -rf bootstrap/cache/*/*) et sessiones currens (rm -f storage/framework/sessions/*) exinanire. Utique res tota perfici potest etiam intra migrationem Laravel:

2aa7136d977617159be1834eaf40e871

Post conversionem utitur in futuris migrationibus loco bigIncrements aut. bigInteger tunc " uuid:

2aa7136d977617159be1834eaf40e871

Back