2014-02-16 3 views
1

Я разрабатываю небольшое приложение. Это небольшое приложение, подобное CMS. Администратор этого сайта должен иметь возможность изменять настройки в приложении. Как текст в заголовке, сообщение дня.Где сохранить данные конфигурации для веб-приложения?

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

ответ

1

Я думаю, что небольшая таблица в БД с помощью WebSiteSettings будет лучшим решением для меня.

EDITED

WebSiteSettings стол пример:

PK Id    [int]    not null 
    StrTmplVal_1  [nvarchar(128)] null 
    StrTmplVal_2  [nvarchar(256)] null 
    StrTmplVal_3  [nvarchar(512)] null 
    BoolTmplVal_1 [bit]    null 
    BoolTmplVal_2 [bit]    null 
    BoolTmplVal_3 [bit]    null 
    IntTmplVal_1  [int]    null 
    IntTmplVal_2  [int]    null 
    IntTmplVal_3  [int]    null 

WebSiteSettings модель пример для отдельного сайта:

SettingsId   -> Id    
    SiteName    -> StrTmplVal_1  
    PageHeader   -> StrTmplVal_2  
    WelcomeText   -> StrTmplVal_3  
    IsDemoVersion   -> BoolTmplVal_1  
    IsTilesShowed   -> BoolTmplVal_2  
    MaxRowCountOnPage  -> IntTmplVal_1  
    WelcomeAnimationDelay -> IntTmplVal_2 
+0

Но как это должно выглядеть? Таблица с столбцами «ключ» «значение»? А как насчет различия в типе длины значения? Как это решить в «больших» приложениях? – Hooch

+0

Вы можете создать таблицу с несколькими столбцами со строками, int и bool типами и сопоставить их на разных моделях для разных сайтов. Я теперь, что для заголовков сайтов (и других вещей) вам не нужно огромное количество шаблонов, и они не очень большие (строковые символы менее 512 символов, как обычно). – melvas

+0

Это хорошая идея с этим «множеством столбцов». Я понял. Но если вы хотите принять ответ, вы должны немного изменить его и привести пример для других людей, которые могут приехать сюда в будущем. Еще раз спасибо за идею. – Hooch

1

Я полагаю таблицу после этой структуры будет начало:

Таблица Настройки ID(int, primary key), Name(varchar)

Таблица SettingValues ​​ID(int, primary key), SettingID(int foreign key), Value(blob)

Пожалуйста, обратите внимание, что я использую BLOB (Binary Large Object) типа для фактического значения параметра. Поэтому вы можете сохранить настройки только путем их сериализации.

Надеюсь, я помог!

+0

Ничего, но я не понимаю, почему у меня нет таблицы с именем и значением (blob)? Я новичок в SQL, и мне интересно узнать эти небольшие трюки. – Hooch

+0

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

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