Qu'en est-il de l'utilisation d'un nvarchar comme key étrangère?

Jusqu'à présent mes foreign keys ont toujours été des identifiants uniques ou un int.

Cela aurait-il un impact négatif sur les performances si j'utilisais un champ nvarchar comme key étrangère? Y a-t-il d'autres considérations dont je devrais me préoccuper?

Bien que vous puissiez faire nvarchar comme key étrangère, je ne vous suggérerais pas d'utiliser nvarchar comme key étrangère. Il y a beaucoup de raisons pour lesquelles je pense que celle qui est très essentielle est quand vous allez faire JOINS alors nvarchar sera plus lent comparé à int.

Cela aurait-il un impact négatif sur les performances si j'utilisais un champ nvarchar comme key étrangère?

Oui, il y aurait certainement un problème de performance car un int utilise 4 octets de données et est généralement plus rapide à JOIN que NVARCHAR.

Vous pouvez également vérifier l'espace utilisé en utilisant la procédure stockée sp_spaceused en prenant la colonne int et nvarchar et vous findez la différence.

 EXEC sp_spaceused 'TableName'