Laravel 可审核历史表 - SQL 历史或审核包的优缺点?

Laravel Auditable History Tables - Pro & Cons of SQL History or an auditing package?

我的问题是我不确定该怎么做。我正在考虑构建类似这样的数据库结构 (source):

然而,在研究过程中我发现有像 this 这样的审计包。所以我想知道,利弊是什么?

我的想法是:

你是走硬路还是直接拿包裹?

我会使用这个包,主要是因为易于使用和配置。

关于你提到的缺点:

  • 单一审核 table 包含所有 tables
  • 的所有 auditable 更改
  • 难以在数据库查看器上阅读

首先,我真的不能说这是一件坏事,因为它可以很容易地将用户与跨不同模型所做的所有更改联系起来。

否则,如果您对每个模型(order_auditscostumer_audits、...)进行审核 table,则必须使用 JOIN 语句来处理简单的事情,例如获取例如,用户在系统上所做的更改总数。

你指出的第二个原因,我假设是因为一些数据被存储为 JSON。如果是这种情况,您始终可以将存储该数据的列类型从 TEXT 转换为 JSON(在 documentation 中介绍)。

其中一个好处(在支持它的 RDBMS 上)是,您可以在 JSON 类型的列上使用 WHERE 语句来应用过滤,并且给定 JSON 类型大约有一段时间,我敢打赌有数据库查看器可以正确显示数据,而不是 JSON.

的字符串