1

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

在此处输入图像描述

但是,在研究时我发现有这样的审计。所以我想知道,有什么优点和缺点?

我的想法是:

  • SQL 历史:

    临:

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

    缺点:

    • 更难实施
  • 像 Laravel 审计

    临:

    • 易于通过 Trait 实现
    • 轻松获取历史数据到 Eloquent

    缺点:

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

你会走艰难的路还是只接受包裹?

4

1 回答 1

1

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

关于你提到的缺点:

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

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

否则,如果每个模型都有一个审计表(order_audits, costumer_audits, ...),您将不得不使用 JOIN 语句来处理简单的事情,例如获取用户在系统上所做的更改总数。

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

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

于 2018-11-21T21:53:37.953 回答