Конфигурация в файле или базе данных? - PullRequest
19 голосов
/ 28 января 2009

Я на самом деле не спрашиваю, должен ли я использовать либо СУБД, либо файлы конфигурации для 100% конфигурации моего приложения, но какую конфигурацию вида лучше всего решать каждым методом.

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

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

Ответы [ 3 ]

13 голосов
/ 28 января 2009

Я считаю, что во время разработки очень полезно сохранять конфигурацию в файле.

Гораздо проще извлечь файл (web.config, app.config или какой-либо другой пользовательский файл) и внести изменения, которые мгновенно обнаруживаются при запуске кода. При работе с конфигурацией, хранящейся в базе данных, возникает немного больше трений. Если ваша команда использует одну базу данных разработки, вы можете легко повлиять на других членов группы с помощью ваших изменений, и если у вас есть отдельные базы данных, потребуется больше, чем «получить последнюю версию», чтобы запустить и запустить последнюю конфигурацию. Кроме того, гибкость XML делает более естественным хранение конфигурации, которая представляет собой нечто большее, чем просто пары «имя-значение», в файле, чем в реляционной БД.

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

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

5 голосов
/ 20 мая 2009

oneliner: По общему принципу - чем больше вероятность того, что данные конфигурации должны измениться, тем лучше поместить их в db.

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

5 голосов
/ 28 января 2009

Следует учитывать, сколько существует данных конфигурации и, возможно, как часто они могут изменяться. Если объем данных небольшой, то сохранение его в базе данных (если вы еще не используете БД для чего-либо еще) будет излишним, равно как и сохранение БД для того, что меняется каждые 6 месяцев, вероятно, будет пустой тратой времени. ресурсы.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...