gpt4 book ai didi

database - 保存数据库字段更改 - 最佳实践?版本控制,可记录?

转载 作者:太空狗 更新时间:2023-10-30 01:51:24 24 4
gpt4 key购买 nike

我正在使用 Symfony 2 和 Doctrine 作为 ORM 框架。我正在寻找保存对数据库字段所做更改的最佳方法。我将有大约 100 个表,每个表有大约 50 个字段和几千行。现在我想保存对字段所做的所有更改。

我想到的可能性:Doctrine 扩展“Loggable”- 将更改保存在不同的表中,但不知道它是否能负担得起这个数量的条目。

每个表的 MySQL 触发器将更改保存在新表中?

但是保存更改的最佳做法是什么?

最佳答案

您可以使用 MySQL 触发器或提到的 DoctrineExtension Loggable 功能。两者都有效,都有缺点和优点。 MySQL 触发器可以写入单独的表(参见 mysql trigger FAQ )。

触发器:

  • ++ 框架,独立于编程语言
  • ++ 在您想手动或通过脚本修改数据时有效。
  • -- 你必须为每个表编写触发器,或者必须在 SQL 中找出一些通用的解决方案(我对此无能为力)。
  • -- 如果您不熟悉存储过程和 PL/SQL,那么,有一个学习曲线

Doctrine 扩展:

  • ++ 只需将注释放在类上即可。
  • ++ 您可以通过Repository API 查询历史,还原更改
  • -- 您将自己锁定在供应商身上,这有时是问题,有时不是问题
  • -- 当您手动或使用第 3 方脚本修改数据时不起作用。

如果将 Doctrine 转换为其他东西的可能性很低,我会从 Doctrine 扩展开始。毕竟,它是一个具有帮助处理 SQL 的确切目的的工具。

关于database - 保存数据库字段更改 - 最佳实践?版本控制,可记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9845196/

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