当前位置:  开发笔记 > 编程语言 > 正文

如何在数据库中构造配置数据?

如何解决《如何在数据库中构造配置数据?》经验,为你挑选了2个好方法。

什么是人们在数据库中存储应用程序配置数据的首选方法.从我自己过去做过这个,我已经用了两种方法做到了.

    您可以创建一个存储键/值对的表,其中key是config选项的名称,value是其值.专业的是添加新值很容易,您可以使用相同的例程来设置/获取数据.缺点是您有无类型数据作为值.

    或者,您可以对配置表进行硬编码,每列都是值的名称及其数据类型.这样做的缺点是更多维护设置新值,但它允许您输入类型数据.

使用两者后,我的偏好在于第一个选项,因为它可以更快地进行设置,但是它也更具风险,并且在查找数据时可以(略微)降低性能.有没有人有任何替代方法?

更新

有必要将信息存储在数据库中,因为如下所述,可能存在需要以相同方式配置的程序的多个实例,以及可能使用相同值的存储过程.



1> RB...:

您可以展开选项1以获得第3列,从而提供数据类型.您的应用程序可以使用此数据类型列来转换值.

但是,如果配置文件不是一个选项,我会选择选项1.选项1的另一个优点是您可以将其读入Dictionary对象(或等效对象),以便在您的应用程序中轻松使用.



2> Hugo..:

由于配置通常可以存储在文本文件中,因此字符串数据类型应足以存储配置值.如果您使用的是托管语言,则代码应该知道数据类型应该是什么,而不是数据库.

更重要的是,请考虑以下配置:

层次结构:显然,配置将受益于层次结构

版本控制:考虑能够回滚到特定日期生效的配置的好处.

分发:有时候,能够集群应用程序可能会很好.某些属性可能应该是群集中每个节点的本地属性.

文档:根据您是否有Web工具或其他内容,可能很好地存储有关使用它的代码附近的属性的文档.(代码注释对此非常好.)

通知:代码如何知道在配置库中某处进行了更改?

就个人而言,我喜欢处理配置的倒置方式,其中配置属性被注入到模块中,这些模块不知道值来自何处.这样,配置管理系统可能非常复杂或非常简单,具体取决于您(当前)的需求.

推荐阅读
mylvfamily
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有