ドメイン駆動型の設計を行おうとしている場合は、テーブルから始めないでください。基礎となるドメインを反映する概念モデルを最初に作成します。私は ndp に同意します: RecipeIngredient は、DDD の観点からすると、少し厄介な名前/概念です。
モデルには次の概念が必要だと思います: Recipe、Ingredient、Measure、RecipePreparation。
レシピは、材料の集合体です。Recipe に属する各 Ingredient には、準備の仕様として、それに関連付けられた Measure が必要です。また、レシピの特定の準備中に使用される各材料の実際の量を関連付けるために RecipePreparation をモデル化する必要があります。
メジャーは、単位と量で構成されます (例: 2 カップ、0.5 オンス、250 グラム、大さじ 2 など)。
ここでは、分析中に混合される可能性があり、分割しておく必要がある 2 つの異なるものがあります。何かを調理するための仕様としてのレシピ/材料/測定 (レシピごとに 1 つのインスタンス) と、1 つの具体的な準備としての RecipePreparation/材料/測定です。特定の人が特定の瞬間に行ったレシピであり、さまざまな手段を使用している可能性があります(レシピの仕様は2つのプレート用であり、4人のゲストがいるため、すべての材料を2倍にします...そのようなもの)。
より深く進んで、交換可能な材料のセットを持つ一部の材料 (たとえば、山羊のチーズがない場合はモッツァレラチーズを使用)、同じカテゴリのレシピのセットを集めたクックブック、レシピの調理時間などのモデル化を開始できます。など