gpt4 book ai didi

mysql - Django 代码或 MySQL 触发器

转载 作者:可可西里 更新时间:2023-11-01 07:54:54 26 4
gpt4 key购买 nike

我正在使用 Django 创建一个使用 MySQL 数据库的 Web 服务。客户端通过 Django 处理的 URL 与我们的数据库交互。现在我正在尝试创建一种行为,当某个表被修改时自动进行一些检查/记录,这自然意味着 MySQL 触发器。但是,我也可以在 Django 中执行此操作,在执行表修改的请求处理程序中。我认为 Django 还没有触发器支持,所以我不确定通过 Django 代码或 MySQL 触发器哪个更好。

任何了解这些选项的性能的人都愿意阐明一些信息吗?提前致谢!

最佳答案

有很多方法可以解决您描述的问题:

  • 应用程序逻辑
    • View-specific logic -- 如果行为特定于单个 View ,则将更改放在 View 中。
    • 特定于模型的逻辑 -- 如果行为特定于单个模型,则 override the save() method对于模型。
  • 中间件逻辑 -- 如果行为涉及多个模型或需要环绕现有应用程序,您可以使用 Django 的 pre-save/post-save signals在不更改应用程序本身的情况下添加其他行为。
  • Database Stored Procedures -- 通常有可能,但 Django 的 ORM 不使用它们。不可跨数据库移植。
  • 数据库触发器 -- 不能从一个数据库移植到另一个数据库(甚至不能从一个数据库版本移植到另一个数据库),但允许您控制多个(可能是非 Django)应用程序的共享行为.

就个人而言,我更喜欢使用覆盖 save() 方法或使用 Django 信号。使用特定于 View 的逻辑可以让您在具有相同模型的多个 View 的大型应用程序中脱颖而出。

关于mysql - Django 代码或 MySQL 触发器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4061304/

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