私は最初の Django プロジェクトを行っており、サードパーティ プログラムのレガシー DB と格闘しています。DB には、私が把握しようとしている 1 つのセクションについて、少し変わったテーブル構造があります。
基本的なテーブル レイアウトは次のとおりです。
PERSON
------
z_pk int primary key,
z_name text
SPOUSEREL
---------
z_person int foreign_key(person.z_pk)
z_spouserel int
たとえば、PERSON には以下が含まれます。
1, John Smith
2, Maggie Brown
3, Bob Johnson
4, Sarah Lee
SPOUSEREL には次のものが含まれます。
1, 50
2, 50
1, 55
4, 55
これは、ジョン・スミスが「結婚番号 50」でマギー・ブラウンと結婚し、ジョン・スミスが「結婚番号 55」でサラ・リーとも結婚したことを示しています。50 と 55 という数字は、結婚を示すためにある人から別の人へのリンクを作成するだけの数字であり、他の関連性はありません。
ManyToManyField
さまざまなとの組み合わせを試しましたForeignKey
。例:
class Spouserel(models.Model):
z_persons = models.ManyToManyField(Person, db_column='z_pk')
z_spouserels = models.ManyToManyField("self")
しかし、成功しませんでした。実行しようとしているクエリを確認すると、ID フィールドが必要な Django でルックアップが失敗していますが、存在しません。「スルー」を使用することを考えましたが、この場合、それ自体を通過する必要がありますか?
これでどこに行くべきかわかりません。