在DB中存储设置

时间:2010-08-09 15:15:11

标签: mysql settings database storage

有人可以告诉我什么是在a中存储许多不同设置的最佳方式 数据库?我应该使用一个带有id,key,value的表吗?

以下是我必须存储的示例:

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

我是数据库设计的新手,并不了解学习数据库设计的好资源

干杯, DOM

2 个答案:

答案 0 :(得分:0)

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

  • 我们可以在一个表中保留许多用户的许多用户定义设置。
  • 我们可以创建不同的预定义设置集,这在几种情况下很有用

ETC

答案 1 :(得分: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数据库。

想一想您的设置是静态的还是插入或删除新设置键的频率。