应该存储在数据库(RDBMS)中的内容?

Rah*_*hul 4 database-design

是否有任何准则/最佳实践来决定应在数据库中存储哪种类型的数据?

例如,使用数据库存储是否可以

  1. 应用日志
  2. 配置详细信息(如服务器IP地址等)
  3. 系统信息(例如,shell脚本的名称,批处理作业的调度信息,批处理作业状态等)

我见过使用数据库存储这些应用程序的应用程序.这可以接受吗?这种设计的优点和缺点是什么?

alo*_*lok 5

要回答这个问题,我们必须了解数据库存储提供的平面文件存储不可用.

  1. 安全性 - 您可以存储内容并确保可以控制更新,删除和视图
  2. 审计 - 您可以跟踪谁进行了更改以及何时进行更改
  3. 分布式服务器 - 如果您有多个应用程序服务器访问单个数据库,则可以避免在多个位置存储相同的数据

如果这些是您的数据的desirables,最好将它们存储在数据库中.


Bla*_*laM 5

应用日志

尽管将数据库中的数据限制在特定时间范围内通常是一个好主意(例如转储/归档/压缩以统计超过 3 个月的所有内容),但将日志记录在数据库中可以非常快速且轻松地分析数据. 需要查看特定用户做了什么?“ SELECT * FROM 日志 WHERE User = 'bla' ”。需要找出系统在特定时间崩溃的原因吗?“ SELECT * FROM logs WHERE Timestamp BETWEEN failure - 1 hours AND failure + 5 minutes ”。

配置详细信息(如服务器 IP 地址等)

这取决于配置细节。有些是,有些不是。对在多个客户端(例如网站)上运行的应用程序有效并且可能经常更改(即用户设置)的所有内容都应该放在数据库中。对于或多或少的静态选项,我更喜欢使用配置文件。

系统信息(例如,shell 脚本的名称、批处理作业的调度信息、批处理作业状态等)

我想这与配置细节几乎相同。如果更改:数据库。如果它是静态的:配置文件。Shell 脚本通常是静态的。调度信息和状态会随着时间而改变。