2010-08-09 4 views
0

может кто-нибудь сказать мне, что является лучшим способом хранения множества различных настроек в базе данных ? Должен ли я использовать одну таблицу с идентификатором, ключом, значением?Сохранение настроек внутри DB

Вот пример того, что я должен хранить:

PageNavigation.Font = "fontRegular"; 
PageNavigation.FontSize = 14; 
PageNavigation.FontColor = 0x000000; 
PageNavigation.SubFont = "fontRegular"; 
PageNavigation.SubFontSize = 12; 
PageNavigation.SubFontColor = 0x000000; 
PageNavigation.width = 200; 
PageNavigation.height = 22; 
PageNavigation.spacing = 5; 
PageNavigation.LetterSpacing = 0; 
PageNavigation.top = 250; 
PageNavigation.rightMargin = 24; 
PageNavigation.RollOverColor = 0xFF3300; 
PageNavigation.ActiveColor = 0xCCCCCC; 
PageNavigation.Icon = "/assets/images/arrow_default.png"; 
PageNavigation.IconLeft = 5; 
PageNavigation.TextLeft = 5; 
PageNavigation.SubIcon = ""; 
PageNavigation.SubIconLeft = 5; 
PageNavigation.SubTextLeft = 22; 

PageViewer.BackgroundColor = 0xe9edee; 
PageViewer.ThumbSource = ""; 
PageViewer.maxVisible = 17; 
PageViewer.ThumbWidth = 38; 
PageViewer.ThumbHeight = 49; 
PageViewer.ThumbActiveBorder = 2; 
PageViewer.ThumbActiveBorderColor = 0xEE2233; 
PageViewer.ThumbSpacing = 10; 
PageViewer.ThumbLeft = 20; 
PageViewer.ThumbBorderColor = 0xFF3300; 
PageViewer.ThumbBorderSize = 1; 
PageViewer.ThumbRollOverColor = 0xDDDDDD; 
PageViewer.ThumbActiveColor = 0xCCCCCC; 
PageViewer.ThumbSelectColor = 0xCCCCCC; 
PageViewer.ThumbShadow = 1; 
PageViewer.ThumbLayout = "Layout1"; 
PageViewer.ButtonLayout = "ButtonLayout1"; 

Я новичок в разработке баз данных и не знаю, хорошие ресурсы, чтобы узнать DB-дизайн

Приветствия, Dom

ответ

0

лучшее, что я думаю, чтобы создать поле для каждого типа настройки. Что это такое,

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

ETC

+0

Думал об этом, поэтому я не ошибся :) Я попробую. – dom

0

Да, это будет работать, но имеет обратную сторону, что значения параметров, не имеет соответствующего типа. Вам нужно объявить все как VARCHAR, ваше приложение должно будет проверить правильность значений.

Возможно, было бы возможно создать таблицу для каждого типа установки, например.

create table Settings 
(
    settings_id primary key int not null, 
    name VARCHAR(255) not null, 
); 

create table DoubleValues 
(
    value double not null 
    fk_setting int not null; 
); 

create table ColorValues 
(
    value char(8) not null 
    fk_setting int not null; 
); 

.. 

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

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

Помните, что ваши настройки в основном статичны или как часто устанавливаются или удаляются новые ключи настроек.

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