Ho studiato l'utilizzo dei GUID come chiavi primarie nei database. Finora, i professionisti sembrano superare gli svantaggi. Tuttavia, vedo un punto in cui i GUID potrebbero non essere ciò che voglio.Utilizzo di un GUID e un numero intero con incremento automatico
Nella mia applicazione, gli utenti dovrebbero essere in grado di identificare gli oggetti in base a un ID facile da usare. Ad esempio, se desiderano ottenere un prodotto specifico senza digitare il nome completo, possono utilizzare l'ID del prodotto. I GUID non sono facili da ricordare per qualcosa del genere.
La soluzione a cui stavo pensando è di utilizzare sia un GUID che un intero autoincrementante. Il GUID sarebbe la chiave primaria della riga, mentre il numero intero a incremento automatico sarebbe un indice utilizzato dalle funzioni di filtro dell'applicazione. Tutte le istruzioni SQL SELECT, UPDATE, DELETE useranno comunque il GUID.
Il motivo principale per cui desidero utilizzare GUID è impedire interruzioni durante l'unione di due database. Se Database # 1 e Database # 2 hanno entrambi un prodotto n. 2, lo script di importazione dovrebbe modificare l'ID e tutte le chiavi esterne che si riferiscono ad esso. Con GUID, devo solo modificare l'ID user-friendly nella tabella stessa, mentre le chiavi esterne utilizzerebbero il GUID univoco per ogni record importato e quindi funzioneranno senza modifiche.
Quindi, la mia domanda è: ci sono dei problemi principali (oltre alla dimensione del campo GUID e una facile frammentazione delle pagine) con un indice intero auto-incrementante e una chiave primaria GUID?
Spiacente, ho dimenticato di menzionare che sto utilizzando SQL Server 2008. –