2009-07-26 2 views
1

в приложении базы данных клиент-сервер, различные параметры, которые клиент должен читать с сервера, где вы их сохранили? В базе данных или в каком-то файле, который затем будет передан в сети, или есть лучший способ.Сохранять варианты в базе данных или в файле?

ответ

1

Это зависит от конкретного.

Вообще говоря, очень мало хранить что-то в файле на сервере (помимо самих файлов, таких как изображения, видео, песни и т. Д.), А не базы данных.

Если вы сохраняете, скажем, клиентские настройки, вы можете хранить их в файле на клиенте, но это имеет проблемы с переносимостью (поскольку настройки профиля не переходят на другой компьютер с одним и тем же пользователем), но это может быть подходящим, если клиент может использоваться «в автономном режиме».

Возможно, лучшее из обоих миров - хранить вещи в базе данных на сервере и кэшировать их на клиенте (возможно, в файлах), чтобы разрешить автономное использование, если это подходит для рассматриваемого приложения.

1

Зависит от динамического доступа к значениям.

Ввод их в файл означает изменение файла для внесения изменений. Вы должны отредактировать файл, возможно, переупаковать приложение с новыми значениями и отскакивать от сервера. Если вы используете взорванную версию кода на сервере, это означает, что клиенты должны писать разрешения на сервер, что может быть проблематичным.

Если вы поместили их в базу данных, клиенты могут видеть изменения без необходимости редактировать файл. Они сразу видят ценности. Не требуется отказов сервера. И вы можете получить доступ, используя разрешения базы данных.

ОБНОВЛЕНИЕ: Еще одна мысль - это варианты для всех пользователей или только одного человека? Если это первый, вам нужно беспокоиться о «консервной массе», где один пользователь меняет значение, а другой переключает его обратно. Если это для отдельного человека, у вас должен быть файл для каждого пользователя. Проблема с большой пользовательской базой.

0

Клиентам необходимо прочитать только некоторые настройки конфигурации, вот и все. Также эти параметры не будут изменены с клиентов, только с сервера.

+0

Не создавайте новые ответы; отредактируйте свое оригинальное сообщение или введите в качестве комментария. – duffymo

0

Это зависит от вариантов использования, но мой собственный опыт говорит, что лучше хранить опции в базе данных. В сегодняшнем мире нам нужно как можно дальше идти к архитектуре без общего доступа. Таким образом, если завтра вы сделаете свое приложение безопасным, вы обнаружите, что лучше хранить все параметры в базе данных. Потому что в противном случае вам нужно синхронизировать файлы на разных узлах, на которых выполняется копия вашего приложения. С другой стороны, если он находится в базе данных, все это существует в db, и большая часть db поддерживает тип использования с высокой доступностью, и в этом случае вам не нужно беспокоиться о том, чтобы ваше приложение работало с файлами, работающими в разных узлах в синхронизации.

0

Это зависит от целого ряда факторов:

  1. Есть ли у вас более одного Front End сервера, то база данных подход требует меньше охранения.
  2. Если у вас есть Dev, QA, а также окружающая среда в Prod то файл подход имеет смысл в качестве конфигурации не будет изменен, когда копирования/восстановление базы данных из одного из других сред.
0

Как правило, я бы сохранил настройки конфигурации в базе данных, если таковые имеются. Однако в проекте, в котором я сейчас работаю, клиент хочет получить несколько распределенных копий базы данных, обновленных от мастера. Каждая установка имеет собственную конфигурацию, такую ​​как настройки принтера.

В этом случае ответ должен иметь локальный файл конфигурации, в котором хранятся локальные пользовательские настройки. Приложение генерирует значение по умолчанию для каждого параметра. В случае необходимости файл можно отредактировать, чтобы обновить настройки «на лету».

Смежные вопросы