Wendelius
Это очень хороший вопрос. Мало что приходит на ум:
Если базы данных автономны и не нуждаются практически ни в какой информации друг от друга, то отдельные серверы баз данных, вероятно, будут самым простым решением. Клиентское приложение будет настроено только таким образом, чтобы оно подключало правильный сервер и экземпляр
Если базам данных необходимо совместно использовать небольшой объем информации, я бы использовал единую Главную базу данных, содержащую общие данные, доступ к которым осуществляется либо через связанные серверы, либо реплицируется, если надежность соединения недопустима. Остальные таблицы будут размещены в базах данных по конкретным странам.
Все становится интересным, если вам нужно получить доступ ко всем базам данных внутри одних и тех же запросов. Если это требование я бы рекомендовал провести расследование Понимание Контенте Важен Для Нас. [^]. Использование федеративного представления, скорее всего, потребует некоторых логических изменений в приложении, но если база данных будет распределена по нескольким серверам на основе клиентов, то небольших изменений, вероятно, не удастся избежать.
Конечно лазурь была бы одной из тем для обсуждения но вы написали
"Но клиенты не хотят, чтобы их данные о клиентах оставались за пределами их страны."таким образом, облачное хранилище, вероятно, не может быть и речи.
ДОПОЛНЕНИЕ:
---------
Когда два сервера находятся далеко друг от друга, мало что нужно принимать во внимание:
- Общая скорость, насколько быстро происходит соединение между серверами на самом деле
- Разница в скорости, сильно ли меняется пропускная способность
- Надежность, имеет проблемы с подключением подключения
- Потребность в ссылке, большинство запросов выполняются на основе локальных данных, даже если можно получить удаленные данные. Это относится главным образом к федеративным представлениям.
Все эти факторы влияют на ситуацию. Например, если большинству запросов требуются данные как с локальных, так и с удаленных серверов, то, вероятно, лучше всего "кэшировать" удаленные данные локально, например с помощью репликации.
С другой стороны, если приложение нуждается в доступе к самым последним данным, то копирование данных может быть неправильным выбором, и вам нужно будет извлечь их, когда это необходимо. Это означает наличие связей или другого механизма, но также может привести к возникновению узких мест в производительности и проблем с надежностью.
Таким образом, в конце концов, нет правильного ответа, и то, что может быть лучшим решением сегодня, может быть вторым лучшим завтра, потому что подключение и пропускная способность постоянно развиваются. Чтобы решить, что лучше всего подходит для вашей ситуации, вам нужно пройти через все имеющиеся у вас требования и сравнить различные варианты с требуемой функциональностью. В конце концов, решение будет компромиссным, так или иначе.
vijay vettri
Спасибо за предложение! Я изучил секционирование данных.(Проверьте ограничение в таблице,создайте связанные серверы,создайте представление).да. Это будет полезно. Но в случае наличия серверов баз данных в разных странах возможно ли связывание серверов? Потому что они не будут находиться в одной сети. обряд. Пожалуйста, обновите свои входные данные !