Django CRUD Model #1



Django CRUDのためにモデルを勉強して書きます!

Django app開発におけるモデルの重要な役割


前の文章に記載されているように、モデルの役割はORMであり、データベース内のデータの作成、クエリー、変更、削除を可能にする

ORM


オブジェクト(クラス)とリレーショナル・データベースのデータの自動マッピング
これは、オブジェクトとテーブルが互換性を持って作成されていないため、不一致が発生し、ORMはオブジェクト間の関係に基づいてSQL文を自動的に生成し、不一致の問題を解決するために必要な理由です.

ORMを使用するメリット

  • 完全なオブジェクト向けコード
    ORMを使用するとクラスの方法でdbを制御することができ,開発者はクラスモデルのみを用いてプログラミングを行うことができる.
  • 再利用、メンテナンス、再包装可能
    既存のオブジェクトとは独立して作成され、明確なオブジェクトが情報を回収およびマッピングできるため、ERPへの依存性を低減できます.
  • DBMS依存性低下
    プログラム構造がデータ構造に与える影響を低減
    オブジェクト間の関係に基づいてSQL文が自動的に生成され、オブジェクトのデータ型を使用しても、RDBMSのデータ構造とオブジェクト向けモデル間の距離を短縮できます.
    オブジェクトに集中することで、DBMSの交換に伴うリスクと時間を軽減
  • ORMを使うときのデメリット

  • ORMではすべての問題を解決できません
    プロジェクトの複雑性が高いほど、実施が難しくなり、設計が悪くなり、速度が遅くなると、不一致の問題を引き起こす可能性があります.よく使われる大型SQL文の中には、速度を速めるために個別の調整が必要になる場合があり、最終的にはSQL文を使用する必要がある場合があります.
  • ERDによるカテゴリの作成


    参考のERD👇🏻



    作成されたクラスコード



    DB Tableを作成するために作成されたライブラリクラスmodels.Modelは、継承可能であるshellで作業しやすい名前は__str__で、製品とAllergy classはManyToManyFieldM2Mの関係を確立しました.

    Djangoモデルを使用してデータベースにTABLEを作成する


    上にClassを作成してもDBにモデルが生成されないので、ORMで直接DBにData Tableを作成する必要があります!
    $ python manage.py makemigrations <app_name>
    makemigrationsmigrateファイルを生成する役割を果たし、pythonコードをSQLに変換するための設計文を生成するものと見なすことができる.
    $ python manage.py migrate
    移行ファイルをデータベースに反映するコマンド
    前述したように、migrateが完了すると、データベースに実際のテーブルが作成されていることが確認されます.

    文章の内容に間違いがあったらFeedback!👊🏻👊🏻👊🏻👊🏻
    ref.
    https://geonlee.tistory.com/207