【问题标题】:Configuration values in a relational database?关系数据库中的配置值?
【发布时间】:2012-02-04 10:07:59
【问题描述】:

假设我正在构建一个 Web 应用程序并想知道在哪里存储配置值(例如键值对)。预计这些对将通过键查找。

与将这些值存储在配置文件(例如 .ini 文件)中相比,将这些值存储在关系数据库中的优点和缺点是什么?还有其他可能的解决方案吗?


正如@DisgruntledGoat 在他的回答中指出的那样,在用户特定的配置值的情况下,关系数据库是正确的选择。

我对非用户特定的配置选项更好奇,比如我的日志系统的阈值,或者主页上显示的文章数量。配置文件(例如 ini 文件)就是为此目的而设计的,但我也见过有人将它们存储在数据库中几次。

【问题讨论】:

  • “更好” - 更好的目的是什么?
  • 我稍微编辑了这个问题。

标签: database web-applications configuration-files


【解决方案1】:

没有太大区别,但是数据库的优点是您可以只获取您需要的值。如果您有每个用户的选项,那也更好。

如果这是一个可下载的应用程序,另一种选择是使用您正在使用的本地语言(例如 PHP)保存一个文件。然后您只需包含该文件并在那里有选项。

【讨论】:

  • 为什么只有在可下载应用程序的情况下才选择本地语言文件?
  • @DušanRychnovský 因为如果您托管应用程序,用户无法在您的服务器上编辑 PHP 文件。一些应用程序,如 phpMyAdmin 或 CodeIgniter 框架在 PHP 文件中有配置。
  • 但是我可以编辑它们,这可能比编辑 ini 文件然后在我的(比如说)PHP 代码中解析它们更容易、更直接。母语 conf。对我来说,文件似乎具有相同的优势(相对于非母语的)——如果应用程序托管在我的服务器上——对于我的用户——如果应用程序是可下载的。也许更多,因为我是程序员,而我的用户可能不是,因此可能比 PHP 文件更了解 ini 文件。
  • @DušanRychnovský 我认为我们在这里混淆了两个问题。如果您自己托管您的网络应用程序,并且它对所有用户只有一组选项,那么可以使用例如PHP 将是最简单的。但如果用户需要设置自己的偏好,这是不可能的,您需要将它们存储在数据库中。
  • 是的,没错。我在开始的问题中提到了应用程序非每个用户的配置。我应该编辑我的问题以反映这一点。
猜你喜欢
  • 1970-01-01
  • 2014-08-29
  • 2010-09-12
  • 1970-01-01
  • 1970-01-01
  • 2011-11-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多