【问题标题】:Is an application-wide "settings table" a good idea?应用程序范围的“设置表”是个好主意吗?
【发布时间】:2012-04-03 18:53:39
【问题描述】:

例如,Wordpress 有一个包含name => value 行的表,用于存储应用程序范围的设置(博客名称、cmets 设置等)。请注意,我指的是在正常使用应用程序期间可能会经常修改的设置。

我理解为什么 Wordpress 会这样做(可移植性:很容易将整个数据库复制到另一个博客并保留设置),但是对于较小的应用程序是否有更好的方法呢?

我知道许多框架,例如 Zend Framework,都有一个包含应用程序范围配置设置的配置文件。为什么不在运行时动态修改该文件以保存我的设置?对我来说,这比数据库设置存储有几个优点:

  • 更少的数据库使用
  • 无需 MySQL shell 或 phpMyAdmin 实例即可通过 FTP 轻松进行人工编辑设置
  • 设置文件可以轻松备份和恢复

另一方面,我能想到的最大复杂性是并发性。在进行更改时需要锁定文件。

首选的方式是什么?

【问题讨论】:

  • 如果设置会被修改,经常放入数据库中。

标签: database web-applications persistence


【解决方案1】:

数据库表优势

  • 设置对于共享同一数据库的所有 Web 服务器都是全局的。无需文件复制/网络文件系统
  • 应用程序很可能已经使用数据库,无需额外设置
  • 不依赖文件系统
  • 更容易缓存(也许已经有一些通用的数据库缓存层?)
  • 处理并发
  • 应用程序可能已经有一个框架或方法来处理任何数据库表的 CRUD(创建 GUI 很容易)
  • 透明备份应用程序的其余部分
  • 如果您有多个专门使用的不同类型的 value 列,则可以进行强类型化

...和缺点

  • 您需要工具或 SQL 知识来维护它
  • 可能性能更差

【讨论】:

  • 感谢您的帮助!我将暂时推迟接受答案,看看是否有其他意见,但我非常喜欢你的。
  • 糟糕,完全忘记了这个问题。感谢您的回答!
猜你喜欢
  • 2015-02-03
  • 2014-03-17
  • 1970-01-01
  • 1970-01-01
  • 2019-10-19
  • 1970-01-01
  • 1970-01-01
  • 2012-04-27
  • 1970-01-01
相关资源
最近更新 更多