Трудно сказать, что является лучшим решением. Но у нас есть почти тот же сценарий.
RealTime:
Для обновления данных в реальном времени мы используем WebServices, поскольку в нашем случае две разные базы данных принадлежат разным проектам. Таким образом, каждый проект предлагает веб-сервис, который можно использовать для поиска и обновления данных. Преимущество заключается в том, что проект не должен заботиться об изменениях структуры базы данных, пока интерфейс веб-службы не изменится.
Статические данные:
Статические данные (например, сотрудники) будут зеркально отображены, поскольку для более быстрого доступа. Для этого огромного количества данных мы используем плоские файлы для ночного обновления.
В случае статических данных, я думаю, важно четко определить владельцев данных. Для каждого фрагмента данных должно быть ясно, какая база данных содержит исходные данные, а какая база данных имеет только теневые копии для быстрого доступа.
Таким образом, статические данные доступны только для чтения в теневой базе данных или могут обновляться только через назначенные веб-службы.