私はDjangoでWebサービスに取り組んでおり、解決できない非常に具体的で複雑な関係をモデル化する必要があります。
3つの一般的なモデルを想像してみてください。それらをサイト、カテゴリ、アイテムと呼びましょう。各サイトには1つまたは複数のカテゴリが含まれていますが、2つの可能な方法のいずれかでそれらに関連付けることができます。1つは「共通」カテゴリであり、多対多の関係にあります。これらは事前定義されており、各サイトはゼロに関連付けることができます。以上のカテゴリ、またはその逆。他のタイプのカテゴリはサイトごとに個別に定義され、そのようなカテゴリの1つはそのサイトにのみ「属し」、他のカテゴリには属しません。つまり、各サイトにはこれらのカテゴリがいくつかある可能性があるため、これらは多対1の関係にあります。
内部的には、これら2つのタイプのカテゴリは完全に同一であり、サイトとの関連性が異なるだけです。ただし、それらを2つの異なるモデル(おそらく共通の親モデルを使用)に分離することはできますが、それは私の問題の半分しか解決しません。アイテムモデルはカテゴリと多対1の関係にあります。つまり、各アイテムはに属します。カテゴリは1つだけで、理想的には、サイトとの関係を気にする必要はありません。
別の解決策は、2つの異なるタイプのサイト-カテゴリ関係を共存させることです(つまり、同じカテゴリモデルにForeignKeyフィールドとManyToManyフィールドの両方を含める)が、このソリューションは、他のワームの缶全体を開くように感じます。
この行き止まりに対する3番目のより良い解決策があるかどうか誰かが考えていますか?