と私は、次のようなデータ構造を持っている:複数の同一の親テーブルへのForeignKeyが、ユニークな識別子
State
がstate_id
とname
を持っています。 (例:California
):Town
town_id
、area_id
、state_id
、およびname
を持ってArea
はstate_id
、area_id
とname
(Area of San Francisco
、いくつかの村やサンフランシスコが含まれている例が)持っています。 (例:Town of San Francisco
)Street
はstreet_id
、town_id
、area_id
、state_id
とname
を有しています。以下
注
state_id
が(オートインクリメントINTのような)実際のIDが、各状態の固定数ではありません。area_id
は、自動インクリメントintではなく、固定数です。これは、2つの異なる状態(複数の領域を持つには十分に大きい)が同じIDを持つ状態を持つことを意味します。 (サンフランシスコの状態は、サンフランシスコ(area_id = 1
)を持つことになりますし、状態NYはNY(area_id = 1
)を持つことになります。town_id
を...あなたはstate_id
とarea_id
と同じ、それを推測。
しないでくださいなぜデータがそのように構造化されているのかを主張すると、それはこの質問の範囲を超えて、私がリファクタリングできるものを超えているので、
これは、町にarea_id
との両方が含まれている必要があることを意味しますそれが識別可能であること。そして、通りには、town_id
,area_id
およびstate_id
が含まれている必要があります。
私はarea.towns
を実行し、その地域のすべての町を取得するか、state.streets
とし、その州のすべての通りを取得することができますどのようにDjangoモデルとの関係を表現することができますか?
質問が不明な場合は、必要な情報を更新していただければ幸いです。ただ質問してください。
ManyToManyFieldを調べましたか? https://docs.djangoproject.com/en/111/topics/db/examples/many_to_many/ –
この質問は理解するのが少し複雑です。もし私がそれを正しくしたら、多分unique_togatherがあなたを助けることができたでしょう: https://docs.djangoproject.com/en/1.11/ref/models/options/#unique-together –