应用程序范围内的“设置表”是个好主意吗?

时间:2012-04-03 18:53:39

标签: database web-applications persistence

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

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

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

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

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

首选方式是什么?

1 个答案:

答案 0 :(得分:1)

数据库表优势

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

......和缺点

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