2017-06-04 7 views
0

Djangoバックエンドのロジックではなく、MySQLデータベース(トリガなど)にロジックを持たせるのがよいかどうか疑問です。私はいくつかの機能がバックエンドとデータベースの両方で実行されるかもしれないという事実を知っていますが、私は良い慣習に従ってそれをやりたいと思います。私は手動でいくつかのことをする必要があるか分からない、あるいはデータベース全体がDjangoによって生成されるべきかもしれない(それは可能だろうか?)可能な限り、それを行うための最良のルールは何ですか?私は経験豊かな人々の意見を知りたいです。Djangoバックエンドロジックvsデータベースロジック

答えて

2

ビジネスロジックにデータベースを使用した場合、パフォーマンスとセキュリティの最適化を最大限に引き出すことができます。しかし、あなたは、このような

  • 懸念
  • データベースベンダーに縛られる
  • など
  • あなたは、データベースウォンで書くものは何でもロジックまた

、の分離など多くのことをも危険にさらすだろうあなたのアプリでバージョン管理されている必要はありません。したがって、データベースを変更するたびに、それらのすべてのものをもう一度作成する必要があります。

代わりにDjango ORMを使用してください。それはあなた自身のモデルに基づいてデータベースを作成し、管理します。その結果、データベースを再作成するたびに、1つのコマンドで移行を実行するだけで済みます。

これはほとんどの状況をカバーします。そして、あなたがそれらのストアドプロシージャのスピードを必要とするときはいつでも、Django ORMはあなたもカバーしました。

つまり、ビジネスロジックを可能な限りデータベースから守る必要があると私は考えています。

関連する問題