@Matt Sheppard:
Disons que vous avez une table de clients. Vous ne voulez sûrement pas un client d'exister dans la table plus d'une fois, ou il y a beaucoup de confusion va se passer tout au long de vos ventes et de la logistique ministères (en particulier si plusieurs lignes sur le client contiennent des informations différentes).
Si vous avez un numéro de client unique, qui identifie le client et vous assurez-vous que l'identifiant est connu par le client (factures), de sorte que le client et le service à la clientèle de gens ont une référence commune dans le cas où ils ont besoin de communiquer. Pour garantir l'absence d'dupliqué les enregistrements de client, vous ajoutez un caractère unique-contrainte à la table, soit par le biais d'une clé primaire sur l'identificateur du client ou par l'intermédiaire d'un PAS NULL + contrainte UNIQUE sur le numéro de client de la colonne.
Ensuite, pour une raison quelconque (que je ne peux pas penser de), vous êtes invité à ajouter un GUID de la colonne à la table des clients et faire que la clé primaire. Si l'identificateur du client colonne est maintenant à gauche sans unicité de garantie, vous demandez pour de futures difficultés tout au long de l'organisation car les Guid sera toujours unique.
Certains "architecte" peut vous dire que "oh, mais nous nous occupons de la véritable client contrainte d'unicité dans notre app niveau!". La droite. Fashion concernant l'usage général des langages de programmation et (surtout) de niveau intermédiaire cadres change tout le temps, et de façon générale à vivre votre base de données. Et il ya une très bonne chance que vous allez à un certain point besoin d'accéder à la base de données sans passer par la présente demande. == Difficulté. (Mais heureusement, vous et "l'architecte" ont disparu depuis longtemps, de sorte que vous ne sera pas là pour nettoyer le gâchis.) En d'autres termes: Ne conserver évident contraintes dans la base de données (et dans d'autres niveaux, ainsi, si vous avez le temps).
En d'autres termes: Il peut y avoir de bonnes raisons pour ajouter GUID des colonnes dans les tableaux, mais s'il vous plaît, ne tombez pas dans la tentation de faire que la baisse de vos ambitions, pour plus de cohérence dans le réel (==non-GUID) de l'information.