gpt4 book ai didi

mysql - (Mysql) 存储表更改的最有效方法是什么?

转载 作者:行者123 更新时间:2023-11-28 23:13:22 25 4
gpt4 key购买 nike

我正在用 mysql 开发一个 web 应用程序,我有几个表,包括 userarticle

由于我想记录更新了所选文章的用户,我想到了三种可能:

  • 向表 article 添加两列:ART_USE_ID(了解更改者)和 ART_date(保存日期时间)。
  • 使用 CHA_USE_ID、CHA_ART_ID 和 CHA_date 创建第三个changes表,每次用户更改表时都会有一个条目。
  • 将两者结合起来:创建一个表changes,但保留一个 ART_date 以便更快地检索上次更改的日期。

在我看来,第三个是多余的,第一个概念化得不好(只保留最后一个变化)。尽管第二个似乎只适用于一个表(文章),但如果必须为超过 30 个表保存更改,恐怕它会变得更加复杂且非常缓慢 -- 意味着 changes 表将有 30 个外键 (?!)

什么是最好的方法?你对此有何看法?

最佳答案

MySQL 有一个特性叫做 Audit Log以此目的。这个想法是将一系列数据更改事件的“审计”写入数据库外部的日志文件。这样您就可以检查日志中的更改,可以看到对同一数据的多个更改,可以使日志过期等等。

审计日志需要一个插件实现来完成它的工作。 MySQL 制作了一个企业审计插件,但它不是免费的——您必须成为付费客户才能获得 MySQL Enterprise。

审计日志插件实现也有一些免费替代方案。

您可能想试试 Percona Audit Log Plugin .这是 Percona Server(MySQL Community Edition 的一个分支)附带的可选插件。您只需启用该插件即可。

安装和配置文档:https://www.percona.com/doc/percona-server/5.7/management/audit_log_plugin.html

关于mysql - (Mysql) 存储表更改的最有效方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44979452/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com