すべてのモデル継承の中でどれを使用するのが良いですか?またその理由は? 私はそれについての知識を持っていないので、その特定のシナリオでどちらを使用するかを知るために、どちらが優れているか、またはより有用かを知りたい.
- 抽象基本クラス
- マルチテーブル継承
- プロキシ モデル
すべてのモデル継承の中でどれを使用するのが良いですか?またその理由は? 私はそれについての知識を持っていないので、その特定のシナリオでどちらを使用するかを知るために、どちらが優れているか、またはより有用かを知りたい.
これらの各手法には、さまざまな利点があります。それは本当にあなたが何をする必要があるかによって異なります。
開始するのに最適な場所は、モデル継承のドキュメントを読むことです。
抽象基本クラス
記述するコードの量を削減しようとしている場合は、これらを使用してください。多数のモデルにいくつかのフィールドが表示されることがわかっている場合は、基本クラスを作成して継承します。
マルチテーブル継承
これは、クエリと操作が可能な具体的な基本クラスが必要な場合に役立ちます。たとえば、同じクエリセットでとを参照するのとBase.objects.all()
少し似ています。Child1.objects.all()
Child2.objects.all()
プロキシ モデル
すべてのフィールドが各モデルで同じである場合は、プロキシ モデルを使用します。オブジェクトごとに 1 つの db タプルを取得しますが、その db タプルは親またはプロキシのいずれかを表すために使用できます。これは非常に強力で、フィールドが同じである場合はほぼ確実に使用できます。