【问题标题】:Configuration in a File or a Database?文件或数据库中的配置?
【发布时间】:2009-01-28 14:20:31
【问题描述】:

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

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

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

【问题讨论】:

  • 使用数据库。以后你的头痛可能会少一些……

标签: configuration


【解决方案1】:

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

签出文件(web.config、app.config 或某些自定义文件)并进行更改会更容易,这些更改会在代码运行时立即获取。使用存储在数据库中的配置会涉及更多摩擦。如果您的团队使用单个开发数据库,​​您的更改很容易影响其他团队成员,并且如果您有单独的数据库,则只需“获取最新”即可启动并使用最新配置运行。此外,XML 的灵活性使得在文件中存储不仅仅是“名称-值”对的配置比在关系数据库中存储更自然。

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

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

【讨论】:

  • +1 非常深刻而明智的回答。如果在安装/部署时不需要更改配置,我还建议将配置保留在代码中。这将强制执行编译时检查,并在开发过程的早期防止许多配置问题。
【解决方案2】:

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

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

【讨论】:

  • 伟大的一个班轮!实际上,这个世界上的一切都容易改变,所以我发现自己总是选择那些有利于改变的程序。我鼓励大家使用数据库进行配置和文件(如图像等)。
【解决方案3】:

要考虑的一件事是有多少配置数据,以及可能更改的频率。如果数据量很小,那么将其保存在数据库中(如果您还没有将数据库用于其他任何事情)将是矫枉过正,同样为每 6 个月更改一次的东西维护一个数据库可能会浪费资源。

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

【讨论】:

    猜你喜欢
    • 2010-09-19
    • 1970-01-01
    • 2021-08-05
    • 1970-01-01
    • 1970-01-01
    • 2015-03-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多