問題タブ [multi-table-inheritance]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
2309 参照

django - 複数テーブルの継承のために既存のモデルに Django モデルの親クラスを追加する

Django Docsでは、この例を使用して複数テーブルの継承を示しています。

最初に Restaurant クラスを次のように作成したとします。

そして、たくさんの Restaurant オブジェクトが既に作成された後、MTI を使用する方が良いことに気付きました。事後に親 Place クラスを作成してデータを移行する良い方法はありますか?

0 投票する
1 に答える
1050 参照

django - djangoマルチテーブル継承、親のインスタンスからの子からのアクセス方法

私はマルチテーブル継承 (別名具象継承) を使用しています。ここでは、クライアントと呼ばれる非抽象モデル + DB テーブルがあり、すべてのクライアントに関する共通の詳細に関係しています。

ただし、クライアントは、継承モデルとテーブルを作成した個人、パートナーシップ、または会社にすることができます。個人は名+姓、会社はその他の具体的な事項などを持ちます。

すべてのクライアントのリストが必要なときに、(子テーブルの列から派生した) クライアントの名前にアクセスできるようにしたいと考えています。

多くの検索の後、このチュートリアルが正常に機能することがわかりました。

基本的には、子モデルの名前を格納する列を Client テーブルに挿入する必要があります。次に、その名前を使用して、適切な子モデルが識別され、適切な子メソッドがアクセスされます。

しかし、Multi-Table 継承でポリモーフィズムを実装するには少し面倒な方法のようです。

2012 年以降、Django がこの問題に対処するためのより良い方法を導入したのか、それともこれが唯一の方法なのか知りたいです。

私のコード サンプルが必要かどうかをお知らせください。ただし、提供されたリンクには既に美しい例があります。

0 投票する
0 に答える
556 参照

postgresql - Postgres camelCased カラム名に関する Doctrine 2.5.4 ディスクリミネーターの問題: 「DQL エイリアス "r" を使用する "" のディスクリミネーター カラム "" がありません」

だから私は、既存のデータベースで教義の複数のクラステーブルの継承を扱っていました。クエリを実行しようとすると、スローされます

DQL エイリアス "r" を使用する "Entity\Customer" の識別子列 "customertype" がありません。

現在のエンティティのセットアップは次のとおりです。

識別子列が定義されている抽象クラス Customer があります。

Merchantクラス...

アフィリエイトクラス...

問題がキャメルケースで引用されていない形式の識別子列にあることは知っていますが、おそらく誰かが同じ問題を抱えていて、これを回避する方法を作成しました。

0 投票する
0 に答える
855 参照

django - 同じリクエスト内のdjango-rest-framework複数のシリアライザー

ここで同様の回答があることは知っていますが、私の質問は同じではありません。マルチテーブル継承を使用して 2 種類のエンティティをモデル化していますが、どちらも投稿を作成できます。私の問題は、すべての投稿をまとめて表示するビューを作成しようとするときです。

したがって、Entity モデルがあり、ETypeA および ETypeB モデルは次のようになります。

ご覧のとおり、Entity モデルは、ETypeA と ETypeB の間で共通の主キーを持つためだけのものです。この理由は、次のように、共通の Post モデルを 1 つだけ持つためです。

現在の問題は、投稿を表示するビューを作成すると、送信機の ID しか取得できず、すべての情報が必要になることです。SQL でこれを行う方法は、結果を ETypeA と結合し、次に ETypeB と結合し、結果間のユニオンを作成する必要があります (一部のフィールドを null のままにします)。次に、日付順に並べ替えることができるはずです。DRF ビューとシリアライザーでそれを行うにはどうすればよいですか?