Разрабатываю продукт. Тут присутствуют страны и их города. И собственно вопрос - как лучше такое хранить? стран около 250 штук, а вот городов больше, при чем в разы. + ко всему требуется перевод каждой страны и города.
Один вариант это бд с двумя таблицами. Но вот как в этой ситуации бить с переводами? добавлять колонки под каждый язык - ну такое мне кажется.
Можно хранить в файлах, а при старте приложения считывать в память... но такое.
Что скажете по этому поводу?
Смотря сколько вариантов языка. Если 2-3, то в 2-х базах с колонками типа name_ru, name_en... Так же и города. Если локализаций намного больше - выносить в отдельные БД. Но ври любом раскладе из фа читаться будет значительнее медленнее.
Кстати, существует уже много примеров, может взять уже готовую БД и не изобретать велосипед?
Как вариант можно хранить это в трех таблицах:
Таблица Country:
id,
country_name,
lang_id
Таблица Cities:
id,
cities_name,
lang_id,
country_id
Таблица Language:
id,
language_name
Пример:
SELECT COUNTRY_NAME,
CITIES_NAME,
LANGUAGE_NAME
FROM COUNTRY
LEFT JOIN CITIES
ON COUNTRY.ID = CITIES.COUNTRY_ID
LEFT JOIN LANGUAGE
ON LANGUAGE.ID = COUNTRY.LANG_ID
WHERE LANGUAGE_NAME IN ('EN'); --EN, RU, UK
Результат:
Виртуальный выделенный сервер (VDS) становится отличным выбором
После установки PHPMyAdmin, при заходе на сайт выскакивают ошибки: