存储配置数据 - 哪种方式


Storing the configuration data - which way?

我正在用Codeigniter框架开发我的新网站。关键是,我希望在我的管理面板中配置大多数内容。

我没有太多关于存储数据的经验,那么哪种方式会更好:PHP 配置文件还是 MySQL 表?

会有相当多的配置,所以我想尽快访问它:例如使用 MVC 的模型,但没有人说我不能对助手做同样的事情(对于 PHP 配置文件)......所以这完全取决于它将采用哪种方式:可访问更快,更新更好。在我看来,MySQL将是一个更好的选择,因为我只需要一个小查询 - 但我会首先听听你们的意见,因为你们中的大多数人都有与这种东西相关的丰富经验。

我认为

这将取决于您的应用程序的配置方式。将运行多少个实例(用于横向扩展)以及预期值更改的频率。

一个大专家是为您的所有实例的配置数据提供一致的主站。在一个位置更改它,您的所有实例都会得到它。这也可以在运行时更改,而不是必须重新部署应用程序。缺点是从数据库中获取配置数据的额外复杂性(更不用说首先为此设置服务器),这是另一个故障点。

另一方面,拥有配置文件要容易得多,如果您不需要非常频繁地更改值或只有一台服务器,则可能适合这样做。缺点是当您拥有多台服务器时,在数十或数百台服务器上部署和管理配置文件会变得很痛苦。

这取决于 - 你需要一个用户界面吗?如果这样做,请将其存储在数据库中。否则,一定要将其存储在 PHP 配置文件中。优点是:

  • 它更快
  • 它更容易
  • 实际上更容易改变

但是,如果您要为设置制作某种管理面板,则需要将其存储在数据库中,因为在PHP中更新PHP配置文件通常很困难并且是一个坏主意。

使用MySQL数据库绝对是存储灵活数据的方法。此外,Codeigniter 的活动记录库 (http://codeigniter.com/user_guide/database/active_record.html) 使处理 MySQL 数据库变得更加容易,而且它会为您清理查询。如果您只需要存储几条数据,PHP 配置文件将是一个可接受的解决方案,但如果您要构建管理面板,请务必使用 MySQL 数据库。

codeigniter具有适当的配置机制。您可以将所有配置放在应用程序/配置/配置.php文件中,代码点火器框架确保以最有效的方式将它们提供给您的代码。

如果您认为将来将由用户/管理员管理配置,则应将其放置在数据库中,例如站点名称等。 否则请记住,每次访问数据库都需要付费。您可以通过缓存值来支付该成本,但如果确实需要,请选择自定义配置解决方案。