Ydeevne er egentlig ikke hovedproblemet, i hvert fald ikke for mig. Spørgsmålet handler mere om surrogat vs naturlige nøgler.
Landekoder er ikke statiske. De kan og ændrer sig. Lande skifter navn (f.eks. Etiopien til Eritrea). De bliver til (f.eks. Jugoslaviens eller Sovjetunionens opløsning), og de ophører med at eksistere (f.eks. Vest- og Østtyskland). Når dette sker, ændres ISO-standardkoden.
Mere i Navneændringer siden 1990:Lande, byer og mere
Surrogatnøgler har en tendens til at være bedre, fordi når disse begivenheder sker, ændres nøglerne ikke, kun kolonner i referencetabellen gør.
Af den grund ville jeg være mere tilbøjelig til at oprette lande- og valutatabeller med en int-primærnøgle i stedet for.
Når det er sagt, vil varchar-nøglefelter bruge mere plads og have visse ydeevnemæssige ulemper, som sandsynligvis ikke vil være et problem, medmindre du udfører et stort antal forespørgsler.
For fuldstændighedens skyld kan du henvise til Databaseudviklingsfejl lavet af appudviklere .