【问题标题】:XML or Database Table to store settings用于存储设置的 XML 或数据库表
【发布时间】:2011-12-07 22:25:12
【问题描述】:

我即将开始用 PHP 编写一个站点,使用 MySQL 作为后端。我必须做出的首要决定之一是将站点设置存储在数据库表中还是 XML 文件中。我考虑将它们存储为键/值对,无论我使用哪种存储。这可能是最灵活、最好的方式。

由于这两种方法的实现和使用都相对简单,所以我担心的是性能。哪个更快?我应该使用哪一个?为什么?

PS:将设置存储在 .ini 文件中有多容易?可以通过 PHP 脚本而不是由用户/系统管理员手动更改它们吗?

另外,如果我将设置存储在 mysql 表中,系统管理员可以轻松地将该(非常小的)表缓存在 RAM 中。他可以用 XML 文件做到这一点吗?

【问题讨论】:

  • 建议:如果您有其他详细信息/问题。编辑你的帖子,不要添加 cmets
  • 已修复,感谢您的建议。这个网站有点新……

标签: php mysql xml configuration


【解决方案1】:

我假设配置是针对每个用户的。 首先,我建议您编写一个可以访问配置的包装类。这样你只能在一个类中更改配置的核心,而不是在所有代码中。

class configuration {
  public function get_user_configuration() {
    // return users configuration
  }
}

我认为将配置存储在数据库中会更容易。因为那时配置可能会每天备份并且可以轻松导出。

缓存此配置是个好主意。最简单的方法是将其缓存在会话中。你也可以试试 memcache 或 APC。

【讨论】:

  • 配置不是针对每个用户的,而是站点范围的设置(例如最大用户数、开放/关闭注册、是否接受捐赠等)。使用类访问和/或修改设置的想法非常好,谢谢。
【解决方案2】:

无论如何,将其存储在数据库中是有意义的。如果您需要更改设置并加载该文件,您仍然可以将其缓存到(XML)文件。所以应用程序永远不会查询数据库的设置。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-12
    • 1970-01-01
    • 2010-12-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多