在文件或数据库中配置?

时间:2009-01-28 14:20:32

标签: configuration

我并不是在问我是否应该使用RDBMS或配置文件来实现100%的应用程序配置,而是使用每种方法最好地解决 kind 配置。

例如,我听说“最终用户无法更改的任何配置”应该在配置文件而不是数据库中。这准确吗?你如何解决配置?

(我主要关注这里的多用户Web应用程序,但没有特定的平台。)

3 个答案:

答案 0 :(得分:13)

我发现在开发过程中将配置存储在文件中是非常有益的。

检查文件(web.config,app.config或某些自定义文件)并进行更改,这些更改会在代码运行时立即被选中。使用存储在数据库中的配置会涉及更多的摩擦。如果您的团队使用单个开发数据库,​​您可以轻松地通过您的更改影响其他团队成员,如果您拥有单独的数据库,那么启动和运行最新配置需要的不仅仅是“最新”。此外,XML的灵活性使得在文件中存储的配置不仅仅是“名称 - 值”对比在关系数据库中更自然。

缺点是您希望在多个应用程序或网站实例之间重用配置。在我自己的情况下,我们在一个众所周知的位置有一个配置文件,任何应用程序都可以引用它。

至少,这是我们存储“静态”配置的方式,它不需要在运行时由系统更新。用户设置可能更适合存储在数据库中。

答案 1 :(得分:5)

需要考虑的一件事是配置数据有多少,也许有可能改变的频率。如果数据量很小,那么将其保存在数据库中(如果你还没有使用db进行其他任何操作),那就太过分了,同样为每6个月更改一次的内容维护数据库可能会浪费资源。

也就是说,如果您已经在网站的其他部分使用数据库,那么为配置数据添加一两个表可能不是一个大问题,并且可能与您存储其余部分的方式相符数据。如果您已经有一个用于将数据保存到数据库的类,为什么要编写一个新类来保存到配置文件。

答案 2 :(得分:5)

oneliner:作为一般原则 - 配置数据发生变化的可能性越大,将其放入db中就越好。

法律免责声明: 您需要几乎总是一种“自举”配置,必须将其保存到文件中,因此如果您使用数据库来存储配置,“bootrapping”配置的大小将取决于另一个重要原则: “更聪明地工作!!!”