Изпълнението всъщност не е основният проблем, поне не за мен. Проблемът е повече за сурогат срещу естествени ключове.
Кодовете на държавите не са статични. Те могат и се променят. Държавите променят имената (напр. Етиопия на Еритрея). Те възникват (напр. разпадането на Югославия или Съветския съюз) и престават да съществуват (напр. Западна и Източна Германия). Когато това се случи, стандартният ISO код се променя.
Още в Промени в имената от 1990 г.:Държави, градове и още
Сурогатните ключове обикновено са по-добри, защото когато се случат тези събития, ключовете не се променят, а само колоните в референтната таблица.
Поради тази причина бих бил по-склонен да създам таблици за държави и валути с първичен ключ int.
Като се има предвид това, ключовите полета varchar ще използват повече място и ще имат определени недостатъци в производителността, които вероятно няма да са проблем, освен ако не изпълнявате огромен брой заявки.
За пълнота може да искате да се обърнете към Грешки при разработването на бази данни, направени от разработчиците на приложения .