Мы сохраняем настройки конфигурации в таблице типа ключ / значение, что-то вроде:
CREATE TABLE Configuration.GlobalSettings
(
SectionName VARCHAR(50),
SettingName VARCHAR(50),
SettingValue VARCHAR(1000),
SettingType TINYINT
);
SectionName
& SettingName
являются первичными ключами, мы просто их разбиваем, чтобы упростить запрос содержимого раздела и разрешить загрузку отдельных разделов в обработчики, а не загружать весь лот в один раз. SettingValue
- это строка, а затем SettingType
- дискриминатор, который говорит нам, как следует интерпретировать значение параметра (например, 1 = строка, 2 = bool, 3 = десятичная дробь и т. Д.).
Это означает, что вам не нужно изменять структуру таблицы для новых настроек, просто добавьте новую в сценарий развертывания или где бы вы ни настраивали эти параметры.
Мы считаем, что это лучший способ сделать настройку, чем файл, потому что это означает, что вы можете легко программно изменять значения конфигурации через интерфейс администратора, когда это необходимо, что может обеспечить логику в отношении того, что входит в каждый параметр. Вы не можете сделать это так легко с файлом (хотя, конечно, это возможно).