2010-08-09 69 views
0

有人能告诉我在 数据库中存储多种不同设置的最佳方式是什么?我应该使用一个ID,键,值的表吗?在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-设计

干杯, 大教堂

回答

0

我认为最好的是为每种设置创建一个字段。这是做什么的,

  • 我们可以保留许多用户在一个表中的许多用户定义的设置。
  • ,我们可以创建不同的组预先设定的,可以是有用的几起案件

ETC

+0

想到这个,所以我没有错:)我会试试看。 – dom 2010-08-09 15:26:57

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; 
); 

.. 

另一种方法是为每个设置创建一个由一列和一列组成的表格。这样你有正确的输入,并可以在数据库级别添加检查约束。但我认为这一个更糟糕的是要保持和扩大,所以我更喜欢第一个,但一如既往,这取决于您的具体需求。

另一种方法是使用简单的文本文件并将设置读入散列表,这将是最快的方式。也许你可以看看像MongoDb或CouchDb这样的noSQL数据库。

想想你的设置大多是静态的还是新插入或删除新设置键的频率。