我真的不问我是否应该使用一个RDBMS或配置文件为我的应用程序配置的100%,而是什么样的配置最好是通过各种方法解决.
例如,我听说"最终用户无法更改的任何配置"应该在配置文件而不是数据库中.这准确吗?你如何解决配置问题?
(我主要关注这里的多用户Web应用程序,但没有特定的平台.)
我发现在开发过程中将配置存储在文件中是非常有益的.
检查文件(web.config,app.config或某些自定义文件)并进行更改,这些更改会在代码运行时立即被选中.使用存储在数据库中的配置会涉及更多的摩擦.如果您的团队使用单个开发数据库,您可以轻松地通过您的更改影响其他团队成员,如果您拥有单独的数据库,那么启动和运行最新配置需要的不仅仅是"最新".此外,XML的灵活性使得在文件中存储的配置不仅仅是"名称 - 值"对比在关系数据库中更自然.
缺点是您希望在多个应用程序或网站实例中重用配置.在我自己的情况下,我们在一个众所周知的位置有一个配置文件,任何应用程序都可以引用它.
至少,这是我们存储"静态"配置的方式,该配置不需要在运行时由系统更新.用户设置可能更适合在DB中存储.
需要考虑的一件事是配置数据的数量,以及可能的更改频率.如果数据量很小,那么将其保存在数据库中(如果你还没有使用db进行其他任何操作),那就太过分了,同样为每6个月更改一次的内容维护数据库可能会浪费资源.
也就是说,如果您已经在网站的其他部分使用数据库,那么为配置数据添加一两个表可能不是一个大问题,并且可能与您存储其余数据的方式相符.如果您已经有一个用于将数据保存到数据库的类,为什么要编写一个新类来保存到配置文件.
oneliner:作为一般原则 - 配置数据发生变化的可能性越大,将其放入db就越好.
法律免责声明:您几乎总是需要一种"自举"配置,必须将其保存到文件中,因此如果您使用数据库来存储配置,"bootrapping"配置的大小将取决于其他伟大的原则:"更聪明地工作!!!"