目前正在开发一个系统,在设计数据库的时候想把“系统设置表”设计成 key、Value 形式的存储的方式,目的是方便扩展和增加插件,比如增加设置项只需要添加一行即可,现在纠结的问题是:
1、系统的默认设置是否要做一个配置文件来存储(比如数据库中的设置缺少项,或者值超出范围或异常时读取默认的配置文件)。
2、以字典形式存储在调取和保存设置的时候要对数据进行拆箱和装箱,每次都需要转换数据的类型,比如设置里有一项“每页显示的数量为10”那么就需要转换成 int 型。
麻烦大家给些好的办法,谢谢。
对于1、不需要。增加一个字段叫DefaultValue就可以了。
对于2、你在乎这点装箱拆箱的损耗?
DefaultValue 确实可以解决一些问题,我再想想,完善一下,谢谢哈
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; }
我已经确定了,这么做。
1、楼上说的有道理。
2、你这个配置难道有几千万个?性能问题不是测试10万次,你一共只需要运行一次。
计算时间是1MS还是100MS,性能差别100倍,
可是还不够你喝一杯咖啡。
嗯,已经决定好怎么做了,多谢了。