【问题标题】:Django - backend logic vs database logic [closed]Django - 后端逻辑与数据库逻辑
【发布时间】:2017-11-05 07:37:01
【问题描述】:
我想知道是否一个好习惯是在 MySQL 数据库中使用一些逻辑(触发器等)而不是在 Django 后端中使用逻辑。我知道某些功能可以在后端和数据库中完成,但我想按照良好实践来做。我不确定我应该手动做一些事情,或者整个数据库应该由 Django 生成(可能吗)?最好的规则是什么?我想知道有经验的人的意见。
【问题讨论】:
标签:
python
mysql
django
django-models
django-rest-framework
【解决方案1】:
确实,如果您将数据库用于业务逻辑,您可以获得最大可能的性能和安全优化。但是,您也会冒很多风险,例如
此外,您在数据库中编写的任何逻辑都不会受您的应用程序的版本控制。因此,无论何时更改数据库,都必须重新创建所有这些内容。
改为使用 Django ORM。它将根据您的模型自行创建和管理您的数据库。因此,每当您重新创建数据库时,您只需使用一个命令运行迁移即可。
这将涵盖大多数情况。当您需要存储过程的这些速度时,Django ORM 也可以满足您的需求。
简而言之,我认为业务逻辑应该尽可能地远离数据库。