Реализаций, как мне кажется, можно выдумать кучу.
Что касается курсов валют, то их значения могут меняться более чем раз в сутки. Следовательно обновление лучше производить постоянно.
Я бы вообще не связывал курсы валют с внутренней БД. Не вижу смысла там хранить подобную информацию. Передавал бы каждый раз новые данные пользователю, получая их с
какой-нибудь сайт типа ЦБ РФ, РБК и проч.
.