Kezdőoldal » Számítástechnika » Programozás » Találkoztatok már UUID-ütközés...

Találkoztatok már UUID-ütközéssel?

Figyelt kérdés

Olyan, amikor két generált UUID ugyanaz lesz. Azt igéri, hogy világszinten egyedi, de matematikailag ez egy véges halmaz, elképzelhető, hogy lesz ütközés.


Szoktatok ilyenre készülni?


Én most egy adatbázba generálok egyedi UUID-vel sorokat. Ezzel lehet majd egy weboldalon megímezni az adott részt. Tehát az UUID bekerül az url-be majd. És ugyan már megcsináltam az előzetes ellenőrzést, csak az merült fel bennem, hogy egyáltalán van ennek értelme? Fordult már elő ilyen bárkivel is, hogy két legenerált UUID ütközzön egy rendszeren belül?


Illetve nem fog ez a program belassulni idővel?


Ilyen a kódom pszeudokódban egyébként:


- generálok egy uuid-t

- lekérdezem a meglévőek között van-e ilyen

- ha van már ilyen akkor újrakezdem az egészet

- ha nincs akkor kész vagyunk, mehet a program többi része



2021. dec. 28. 13:30
1 2
 11/19 anonim ***** válasza:
100%
Ahogy már írták többen, semmi értelme explicit ellenőrizgetni minden beszúrás előtt. A legrosszabb, ami történhet, hogy pár évtizedenként/évszázadonként lesz egy ütközésed. Ha ettől összeszarja magát az appod, akkor komolyan újra kell gondolni a hibakezelést, mert valamit szarul csináltál.
2021. dec. 29. 14:56
Hasznos számodra ez a válasz?
 12/19 anonim ***** válasza:
72%
Adatbázisban miért kéne ütközést ellenőrzi? Ha tényleg fontos, hogy egyedi legyen, akkor amúgyis rajta van a UNIQE constraint. Innentől kezdve csak a programkódot lassítja az amúgyis felesleges ellenőrzés.
2021. dec. 29. 14:58
Hasznos számodra ez a válasz?
 13/19 A kérdező kommentje:

Ha van rajta constraint, akkor az adatbázis szerinted mit csinál? Segítek, leellenőrzi, hogy egyedi-e. Ha annyira felesleges lenne, akkor minek tenne unique constraintet bárki is egy uuid-t tartalmazó nem nullable oszlopra?


Ez így most elég önellentmondásos lett kedves 12-es.


Ezen kívül ha adatbázisban rajta van a unique index, akkor vajon az adatbázis meghívó nyelvben kell-e ezt a hibát kezelni? És vajon hogy jobb egy ilyen hibát kezelni? Úgy hogy visszanyomjuk a végfelhasználónak, hogy "Technikai hiba, 5xx" vagy úgy, hogy ebből a végfelhasználó semmit sem vesz észre, hanem csak működik a rendszer?

2021. dec. 29. 15:31
 14/19 anonim ***** válasza:
100%
Nem tudom miért kaptam a kioktatást, de pont ezt mondom én is, hogy egyedi adatot tartalmazó oszlopra amúgy is ráteszik a UNIQUE-t. Magyarul programkódból halál felesleges ellenőrizni, mert az adatbázis megcsinálja helyette. Programkódból csak azt kell megvalósítani, hogy ha hibát dob vissza ütközésre, akkor generáljon egy újat, mert már van olyan. Nem tudom hol látsz ebben ellentmondást vagy mi nem tetszik ebben, hogy ennyire ki kellett oktatni?
2021. dec. 29. 15:45
Hasznos számodra ez a válasz?
 15/19 anonim ***** válasza:
100%
Én is le lettem értékelve, de ezen már meg se lepődök. Az unique ütközésekor úgy is exception keletkezik így ezt kell kezelni. Ha több unique van, akkor megnézni melyiknél jött elő és retry míg jó nrm lesz. Ennyi.
2021. dec. 29. 22:11
Hasznos számodra ez a válasz?
 16/19 A kérdező kommentje:
Akkor mégis hagyjam meg a kódom, ahogy elsőre írtam?
2021. dec. 30. 21:58
 17/19 anonim ***** válasza:
64%
Probléma nem lesz belőle, ha hagyod.
2021. dec. 31. 04:14
Hasznos számodra ez a válasz?
 18/19 anonim ***** válasza:
Kivéve ha az lassít rajta idővel.. pl sima listában tárolod és úgy keresed meg, hogy létezik-e, hogy végigmész a listán és összehasonlítod egyesével.
2022. jan. 1. 03:07
Hasznos számodra ez a válasz?
 19/19 anonim ***** válasza:
Adatbázisban tárolódik - azt hittem, hogy ez kiderül a kérdésből
2022. máj. 21. 12:51
Hasznos számodra ez a válasz?
1 2

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!