Być może mamy bazę kontrahentów z różnych stron świata. Albo obsługujemy zakładanie konta użytkownika i wymagamy podania miejsca zamieszkania. Nawet jeśli nie pracujemy w Netfliksie, wcześniej czy później pewnie będziemy musieli zająć się przetwarzaniem danych o krajach.
Jak to przechować? Pole typu „dowolny string” spowoduje, że nasi użytkownicy wkrótce wrzucą tam zarówno „United States”, jak i „U.S.”, „U.S.A”, a nawet „Niemcy” (przynajmniej ja przeszedłem przez takie nieprzyjemne odkrycie). Lepszym wyjściem jest reprezentowanie kraju przez jednoznaczny identyfikator. Na szczęście istnieje ogólnie akceptowalny standard, ISO 3316, czyli w dużym uproszczeniu to, co widzimy w URL-ach albo na tablicach rejestracyjnych: „PL” to Polska, „DE” to Niemcy i tak dalej.
W dalszej części bardzo skrótowo objaśnię kody krajów w ISO 3316. Opiszę też, jak zaprogramować walidację poprawności kodów. Proponuję dwie opcje: z użyciem klasy Locale dostarczanej z JVM oraz przez zewnętrzną bibliotekę nv-i18n
.