0

次のような関係を作成するにはどうすればよいですか。

レストランを想像してみてください。それらのデータテーブルの中には、レシピ用と材料用があります。もう 1 つは、夕食、昼食、朝食、デザート、スープなどの食品のカテゴリを含むものです。名前を cat_food としましょう。

料理人は、cat_food を使用してレシピと材料を並べ替えたいと考えています。たとえば、他のすべての列の中で、レシピから cat_food への「ManyToOne」関係があります。したがって、1 つのレシピには 1 つのカテゴリがあり、1 つのカテゴリには複数のレシピがあります。

しかし、料理人もそのように食材を分類したいと考えています。ここでは「ManyToMany」の関係が成り立ちますが、ディナーやスープのレシピと同じように、デザートのレシピでも 1 つの材料を使用できます。

解決策の 1 つは、レシピ用の cat_food テーブルと独自の材料用のテーブルを作成することです。しかし、レシピや食材を保存する cat_food テーブルを作成するにはどうすればよいでしょうか? (与えられた内容によって異なります)

私の考えでは、中間モデルを使用し、両方の「foreignKeys」にフィールド オプション「blank=True」と「null=True」を設定します。しかし、それだけでは満足できません。長期的にデータベースの問題を引き起こす可能性はありますか? このような状況を処理するためのよりエレガントな方法はありますか?

4

2 に答える 2

0

私見、あなたが言ったように、標準的な関係、外部キー、および多対多が最高のようです。各項目(レシピ、材料、カテゴリ)を適切なフィールドで管理でき、djangoはそれらのリンクの参照を非常によくサポートしているため、それらの関係を考慮したクエリを作成するのは非常に簡単です.

さらに、追加のフィールドを含むカスタマイズされた M2M テーブルが必要な場合は、スルー属性を使用して独自に構築できます。

于 2016-04-02T14:41:13.013 に答える