Laravel可审核历史记录表-SQL历史记录的优点和缺点还是审核包?

时间:2018-11-12 16:54:58

标签: laravel laravel-auditing

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

enter image description here

但是,在研究过程中,我发现有this之类的审核程序包。所以我想知道,优点和缺点是什么?

我的想法是:

  • SQL历史记录:

    专业版:

    • 具有特定属性的表的特定来源
    • 在数据库查看器上易于阅读的每一行

    缺点:

    • 难以实施
  • 类似Laravel审核

    专业版:

    • 易于通过特质实施
    • 轻松将历史数据发送给Eloquent

    缺点:

    • 包含所有表的所有可审计更改的单个审计表
    • 很难在数据库查看器上阅读

您会努力还是只拿包裹?

1 个答案:

答案 0 :(得分:1)

我之所以使用该软件包,主要是因为易于使用和配置。

关于您提到的缺点:

  • 包含所有表的所有可审计更改的单个审计表
  • 很难在数据库查看器上阅读

首先,我不能说这是一件坏事,因为它使将用户与跨不同模型完成的所有更改相关联变得容易。

否则,如果每个模型都有一个审核表(order_auditscostumer_audits,...),则必须使用JOIN语句来完成简单的事情,例如获取用户的更改总数例如,是在系统上完成的。

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

(在支持它的RDBMS上)好处之一是,您可以在JSON类型列上使用WHERE语句来应用过滤,并且考虑到JSON类型已经存在了一段时间,我敢打赌,这里有数据库可以正确显示数据的查看器,而无需使用JSON字符串。