代码之家  ›  专栏  ›  技术社区  ›  Brian Sullivan

在文件还是数据库中配置?

  •  24
  • Brian Sullivan  · 技术社区  · 17 年前

    我并不是真的在问我应该对100%的应用程序配置使用RDBMS还是配置文件,而是问什么 友好的 每种方法都能最好地解决配置问题。

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

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

    3 回复  |  直到 17 年前
        1
  •  15
  •   freshr    17 年前

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

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

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

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

        2
  •  5
  •   Sam Cogan    17 年前

    oneliner:作为一般原则,配置数据越有可能发生变化,就越适合将其放入db中。

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

        3
  •  5
  •   Yordan Georgiev    7 年前

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

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