首页 新闻 会员 周边

在数据库中以字典形式(key、Value)存储数据有何优缺点,如何解决?

0
悬赏园豆:20 [已解决问题] 解决于 2015-05-13 17:14

目前正在开发一个系统,在设计数据库的时候想把“系统设置表”设计成 key、Value 形式的存储的方式,目的是方便扩展和增加插件,比如增加设置项只需要添加一行即可,现在纠结的问题是:

1、系统的默认设置是否要做一个配置文件来存储(比如数据库中的设置缺少项,或者值超出范围或异常时读取默认的配置文件)。

2、以字典形式存储在调取和保存设置的时候要对数据进行拆箱和装箱,每次都需要转换数据的类型,比如设置里有一项“每页显示的数量为10”那么就需要转换成 int 型。

麻烦大家给些好的办法,谢谢。

Charles Zhang的主页 Charles Zhang | 初学一级 | 园豆:38
提问于:2015-05-13 16:35
< >
分享
最佳答案
0

对于1、不需要。增加一个字段叫DefaultValue就可以了。

对于2、你在乎这点装箱拆箱的损耗?

收获园豆:10
幻天芒 | 高人七级 |园豆:37175 | 2015-05-13 16:37

DefaultValue 确实可以解决一些问题,我再想想,完善一下,谢谢哈

Charles Zhang | 园豆:38 (初学一级) | 2015-05-13 16:57
 1       /// <summary>
 2         /// 获取或设置设置项目的唯一编号。
 3         /// </summary>
 4         public new int Id { set; get; }
 5 
 6         /// <summary>
 7         /// 获取或设置设置项目的名称。
 8         /// </summary>
 9         public string Name { set; get; }
10 
11         /// <summary>
12         /// 获取或设置设置项目的描述。
13         /// </summary>
14         public string Description { set; get; }
15 
16         /// <summary>
17         /// 获取或设置设置项目的键名。
18         /// </summary>
19         public string Key { set; get; }
20 
21         /// <summary>
22         /// 获取或设置设置项目的值。
23         /// </summary>
24         public string Value { set; get; }
25 
26         /// <summary>
27         /// 获取或设置设置项目的默认值。
28         /// </summary>
29         public int Type { set; get; }
30 
31         /// <summary>
32         /// 获取或设置设置项目的默认值。
33         /// </summary>
34         public string DefaultValue { set; get; }

我已经确定了,这么做。

Charles Zhang | 园豆:38 (初学一级) | 2015-05-13 17:14
其他回答(1)
0

1、楼上说的有道理。

2、你这个配置难道有几千万个?性能问题不是测试10万次,你一共只需要运行一次。

计算时间是1MS还是100MS,性能差别100倍,

可是还不够你喝一杯咖啡。

 

收获园豆:10
爱编程的大叔 | 园豆:30839 (高人七级) | 2015-05-13 16:44

嗯,已经决定好怎么做了,多谢了。

支持(0) 反对(0) Charles Zhang | 园豆:38 (初学一级) | 2015-05-13 17:12
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册