UUID vs intero

1

Per un database. Dovrei usare un UUID o un intero per la chiave primaria?

Non supererò mai i 2 ^ 32 nella quantità di righe, quindi un intero dovrebbe essere più che abbondante.

Preferirei utilizzare un numero intero, in quanto trovo più facile lavorare con, soprattutto quando si utilizzano lingue diverse.

Domanda: qual è il vantaggio degli UUID rispetto agli interi?

    
posta KaareZ 02.10.2015 - 09:52
fonte

3 risposte

6

The intent of UUIDs is to enable distributed systems to uniquely identify information without significant central coordination. (Wikipedia)

Gli UUID sono semplicemente numeri interi scelti a caso dai nodi che non possono necessariamente comunicare tra loro, quindi sono molto, molto probabilmente ad essere unici piuttosto che garantiti. Se stai programmando un sistema NON-distribuito, non c'è alcun vantaggio.

    
risposta data 02.10.2015 - 09:57
fonte
3

Oltre a ciò che ha detto Kilian Foth, un vantaggio per gli UUID può essere che aumentano lo spazio degli indirizzi e potrebbe essere più difficile da indovinare.

Esempio: se esporti un'API REST che contiene l'id di un'entità nel percorso, un hacker potrebbe indovinare che se

GET link funziona,

GET link potrebbe funzionare allo stesso modo.

Quando è UUID, diventa molto più difficile.

EDIT: Il commento di Jules ha ovviamente ragione, questo di per sé non deve essere considerato un meccanismo di sicurezza.

    
risposta data 02.10.2015 - 10:43
fonte
-1

Utilizza un GUID / UUID

Onestamente il numero di volte in cui ho sentito "non resteremo mai senza numeri interi" solo per qualsiasi sistema che esaurisca rapidamente interi.

Gli UUID offrono vantaggi significativi quando si arriva all'archiviazione di dati, alla replica e al codice in grado di generare nuovi ID senza scrivere nel database

    
risposta data 02.10.2015 - 10:56
fonte

Leggi altre domande sui tag