2017-01-27 2 views
0

私は食材/食事のテーブルの設定をしています。ここでは、Xの成分の組み合わせはYの食事と同じです。MySQL:テーブルのデザイン方法

例: Ingredients「ニンジン、肉、キャベツ」= Mealシチュー。

ユーザーは自分の食材を選択して追加して食べることになります。私はこれらのテーブルの両方をmany2manyの関係にしました。私は、食材を1回追加するために3番目のテーブルが必要であることに気づきましたが、私が遭遇した問題はコストです。

例: サンドイッチ食事をしたいと言いましょう。パン(1 $)、肉(1 $)、チーズ(2 $)を追加します。これは食事を "サンドイッチ"にします$ 4。

私の問題は、食事のテーブルに「コスト」の列があり、食事にリンクされた食事の成分に「コスト」の列がありますが、食事は最初に作成し、次に成分を選択し、これは、材料が最後に来るので、それはまだ総コストを知っていないことを意味します。

私は、食事の総費用がまだ入れられていない成分であると言うことができますか?

+2

「meals.cost」列を完全に取り除いて、それを動的に計算することはできませんでしたか?成分リストのコストを合計しますか? –

+0

それはちょうど素晴らしい食事ではありませんが、それですか? – Strawberry

答えて

0

どのようにデータを入力するのかによって異なりますが、mealsのインターフェイスとmeal-ingredientsのインターフェイスがあると仮定します(これは、このようにタグ付けされているため、おそらくPHPで書かれています)。

材料を更新または作成するときに、meals.costを更新するトリガーを使用するか、挿入/更新後にPHPスクリプトでそのクエリを実行することができます。そうすれば、あなたのcostは常に正確でなければなりません。フィールドの場合は、デフォルトの0にする(技術的には食材なしの食事は無料)

関連する問題