Il disegno di un database è un punto centrale per tutte le applicazioni. Nel mondo web, anche visto il funzionamento disconnesso di ADO.NET, è forse ancora più imperativo definire bene le cose prima di incorrere in errori.
Una delle grandi diatribe relative alle tabelle è l’utilizzo delle chiavi primarie. Identity, GUID, chiavi composte… spesso non si sa cosa scegliere! Io, personalmente, cerco sempre di scegliere i GUID, quando il progetto lo consente. Ma non è, come sempre, “LA” soluzione. Bisogna ponderare di volta in volta per l’effettivo utilizzo.
Nel caso, però, si scelgano di utilizzare i GUID, una funzione disponibile da SQL Server 2005 da ricordare assolutamente è NEWSEQUENTIALID(). Direttamente dalla guida:
In SQL Server 2005 and later versions, you can use the NEWSEQUENTIALID() function generate GUIDs in a sequential order to help eliminate this fragmentation.
Questo ci permette di evitare uno dei maggiori problemi nell’utilizzo dei GUID, insieme a quello ovviamente della relativa “grandezza” del tipo di dato.