AutoIncrement Integer Column, Guid o PGuid, quale scegliere?

4

Guid è stata un'identificazione unica globale. Perché appare "PGuid" (identificazione univoca globale)?

1) Guid NON PERMENTO è unico? (A volte mi chiedo se Guid sia veramente PERMENTE generatore in .NET o Java)

2) "PGuid" solo per "facile da leggere con namespace"? In quali tipi di situazioni possiamo scegliere "Pguid" invece di "Guid" ( Per favore, offri alcuni esempi DI DIFFERENZE.

3) Dal momento che possiamo usare la colonna intero in SQL o nella maggior parte dei db come identificatore univoco, perché Guid o Pguid? ci sono delle cose ragionevoli per loro?

Sarebbe molto bello se fosse possibile elencare ciascun elemento e spiegarlo in sedute dettagliate.

reguards!

PS: voglio aggiungere "Guid" o "Pguid" come tag per la mia domanda, tuttavia non l'ho trovato. Qualcuno aiuta ad applicarlo sulla mia domanda?

    
posta xqMogvKW 17.11.2015 - 07:08
fonte

2 risposte

1

Ci sono due punti:

  1. PGUID può sostituire Puntatore al GUID, non al GUID Permanente . Questo è un puntatore all'inizio del blocco di memoria, dove è GUID.

  2. Se intendevi veramente Identificatori persistenti , quindi la differenza può essere vista come segue. L'ISBN può fungere da identificatore persistente per il libro perché il libro avrà sempre lo stesso codice ISBN. Se aggiungi una voce di database su questo libro, commetti un errore, cancella una voce e leggi di nuovo, guid cambierà. L'ID persistente non lo sarà.

risposta data 17.11.2015 - 12:37
fonte
1

Se hai solo 1 database, di solito un numero a incremento automatico va bene poiché sono facili da implementare e mantenere. L'indice sulla chiave primaria non si frammenterà nel tempo perché i numeri sono belli e sequenziali. Quindi, c'è molto poco bisogno di manutenzione degli indici. Inoltre, la memorizzazione di un numero deve essere inferiore a un GUID, poiché in genere un INT in SQL Server richiede solo 4 byte di spazio di archiviazione.

Tuttavia, i GUID possono essere utilizzati quando è necessario replicare i record da diversi database in un database master. Il numero "10" può essere univoco per quel 1 database, ma tra diversi database, tale schema non funzionerà poiché tali database potrebbero avere anche un record "10". Quindi, vengono utilizzati i GUID. Quindi ogni record è unico. Con i GUID la dimensione dello spazio di archiviazione è maggiore e si manterrà l'indice (ricostruzione, ecc.) Con maggiore frequenza, quindi utilizzando un numero intero diretto. Esistono modi per rendere GUID "sequenziali" per semplificare la manutenzione.

    
risposta data 17.12.2015 - 17:56
fonte

Leggi altre domande sui tag