0

注文を処理して保存するアプリケーションがあります。各注文は、価格設定、サイズ設定、色などのさまざまな項目で構成されています。私の質問は、変更される可能性のある基になるデータにデータを結び付けずに、そのデータを長期間保持するにはどうすればよいかです。

たとえば、誰かが5つのもので構成されたものを注文します。それぞれの費用は1ドルで、合計は5ドルです。ただし、将来のある時点で、個々のもののコストは$0.50に変更されます。今、私が古い注文を持ち出すとき、それの総費用は5ドルではなく2.50ドルです。

当初、子テーブルの更新を許可しないことを考えていましたが、価格設定は、顧客が更新したいだけの巨大な価格設定グリッドに基づいており、価格がわずかに変化するたびに新しいものを作成したくないため、実際には実現可能ではありません。 。各料金グリッドの設定には数時間かかり、料金は数日ごとに変更されます。

もう1つの考えは、注文全体をシリアル化し、そこから作業することです。ただし、そのため、システムを更新して何かを変更することは困難です。古い注文は正しく表示されなくなり、システムがクラッシュする可能性もあります。

これはかなり一般的な問題であり、ベストプラクティスの観点を探しています。

4

3 に答える 3

6

製品の現在の価格に基づいて注文の合計を計算しないでください。オンラインカタログなどの一般的なデータ構造は、注文テーブルと広告申込情報テーブルです。注文テーブルには、注文に関連するすべての情報(注文合計、ユーザーID、日付/時刻など)が含まれ、広告申込情報テーブルには、商品ID、カートに入れられたときの商品の価格、および税務情報などと注文ID。

基本的に、注文テーブルとラインアイテムの間の1対多の関係。ラインアイテムは、注文時の商品の価格などを表すものになります。

于 2009-11-17T19:35:28.807 に答える
1

注文ごとに値を保存する必要があり、価格グリッドに接続するのではなく、そこからコピーする必要があります。

于 2009-11-17T19:31:00.060 に答える
0

ダニは正しいです。監査の目的で、時間の経過とともに変化する可能性のある値にリンクする代わりに、時間の経過とともに変化しない値を使用してレコードを作成します。

したがって、広告申込情報には購入したもののコピーがあり、それを説明する必要があります。したがって、保持する必要のある製品情報がある場合は、価格、料金、合計とともにラインアイテムレコードに保存します。

于 2009-11-17T19:35:20.400 に答える