我想知道在 MySQL 数据库中使用一些逻辑(触发器等)而不是在 Django 后端中使用逻辑是否是一个好习惯。我知道某些功能可以在后端和数据库中完成,但我想按照良好实践来完成。我不确定我应该手动做一些事情,或者整个数据库应该由 Django 生成(是否可能)?尽可能做到这一点的最佳规则是什么?想请教一下有经验的人的意见。
最佳答案
确实,如果您将数据库用于业务逻辑,您可以获得最大可能的性能和安全性优化。但是,您也会冒很多风险,例如
- 没有关注点分离
- 受数据库供应商约束
- 等等
此外,您在数据库中编写的任何逻辑都不会受到应用程序的版本控制。因此,每当您更改数据库时,您都必须再次创建所有这些内容。
相反,请使用 Django ORM。它将根据您的模型自行创建和管理您的数据库。因此,每当您重新创建数据库时,您只需使用一个命令运行迁移即可完成。
这将涵盖大多数情况。无论何时您需要存储过程的速度,Django ORM 都能满足您的需求。
简而言之,我认为业务逻辑应尽可能远离数据库。
关于python - Django - 后端逻辑与数据库逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44353532/