Как правильно хранить относительно статические данные?
Привет, интересует следующий вопрос: как правильней всего хранить относительно статические данные - в базе или в коде, или может совместить?
К примеру имеем список стран, они не меняются каждый день и с одной стороны их можно не пихать в базу данных а хранить как некий массив, пронумеровать вручную или даже использовать 2х символьные коды страны.
Потом усложним, у нас теперь есть инфа от гугловского геокодера, мы имеем place_id и крайние точки страны (bounds), это тоже как-бы неименяемые данные, но их уже похоже надо хранить в бд вместе со всем остальным что относится к странам.
Еще немного усложним, теперь нам надо развернуть приложение на другой машине, допустим список стран у нас есть, но инфы от гугла то нет, а делать 200+ запросов как некая часть миграции - тоже не вариант..
И таких примеров может быть много, одни сложнее, другие проще - валюты, языки, разные типы и виды чего-то.
Хотелось бы услышать какие-то Ваши подходы, размышления, best practices. Спасибо!
Статические данные или динамически изменяемые - это не важно. Данные практически всегда имеет смысл хранить отдельно от кода. В программе нужно реализовать логику обновления данных.
Еще немного усложним, теперь нам надо развернуть приложение на другой машине, допустим список стран у нас есть, но инфы от гугла то нет, а делать 200+ запросов как некая часть миграции - тоже не вариант..
Можно продумать механизм обновления БД через интернет с некоторого сервера обновлений, поддерживающим несколько версий. На нём можно хранить версии БД с включающими необходимые данные.
Другой вариант, более сложный: клиент подключается к серверу обновлений, скачивая дельту и накатывая её на локальную БД.