Order
に多くのLine
アイテムがあり、オーダーの合計コスト (オーダー ラインの価格の合計に基づく) をオーダー テーブルに格納しているとします。
--------------
orders
--------------
id
ref
total_cost
--------------
--------------
lines
--------------
id
order_id
price
--------------
単純なアプリケーションでは、チェックアウト プロセスの同じステップで注文と明細行が作成されます。つまり、これは
INSERT INTO orders ....
-- Get ID of inserted order record
INSERT into lines VALUES(null, order_id, ...), ...
注文レコードを作成した後、注文 ID を取得します。
私が抱えている問題は、注文の総費用を保存する最良の方法を見つけようとしていることです. する必要はありません
- 注文を作成する
- 受注明細の作成
- 明細行に基づいて注文のコストを計算し、注文テーブルで 1. で作成したレコードを更新します
これは、スターターの注文で null 可能な total_cost フィールドを意味します...
これまでの私の解決策は、orders テーブルと 1:1 の関係を持つorder_totalsテーブルを持つことです。しかし、それは冗長だと思います。理想的には、総コスト (オーダーの行数) を計算するために必要なすべてがデータベースにあるため、必要になるたびに値を計算しますが、これは非常にコストがかかります。
あなたの考えは何ですか?