Я бы использовал INT-идентификаторы в качестве ключа вместо кодов ISO и объяснил вам, почему:
Организация, в которой я работал, использует «собственную валюту» (LBP) - например, когда пользователь выполняет некоторую транзакцию, он получает некоторое количество LBP в качестве бонуса. Кроме того, он может обменять эти LBP на доллары, евро и т. Д. И наоборот, оплатить услуги с LBP и т. Д. Кроме того, я не нашел валюту BTC (Биткойн) в стандарте ISO.
Да, это не официальные валюты, но с точки зрения системы и пользователей более гибко использовать их в качестве валют, а не в качестве дополнительного продукта, который пользователь может покупать и продавать.
Организация, в которой я работал, не использует INTS в качестве первичного ключа, они используют коды ISO в качестве идентификаторов (плюс эти дополнительные валюты).
Официально LBP является стандартом ISO для ливанского фунта - поэтому они не смогут плавно добавлять ливанский фунт в систему.
Если вы идентифицируете свои валюты по коду, и в будущем некоторая новая валюта будет зарегистрирована как стандарт ISO (скажем, LBE или BTC) - тогда эти валюты будут конфликтовать с «вашими» валютами.
Кто-то упомянул здесь, что наличие дополнительного ключа int для валют является дополнительным индексом.
Но извините, это проблема для 300 записей (приблизительное количество валют)? Более того, если вы используете INT в качестве первичного ключа для валют, это дает дополнительное преимущество: представьте себе таблицу с 1M транзакциями, которая содержит суммы и валюты, и что является более эффективным: INTS или CHARS?
Так что я бы пошел на INT.