以下は、eコマースサイトの注文部分の現在のdbスキーマのERDです。このサイトはoscommerceに基づいていますが、変更されています。また、図を簡略化するために、テーブルからかなりの数のフィールドを削除しました。
サイトの管理に見積もり作成機能を追加する予定です。見積もりは注文とよく似ており、ほとんどの見積もりは注文に変換されます。顧客の詳細など、ほとんどのフィールドは両方に表示されますが、それぞれに必要ないくつかの異なるデータがあります。また、元の見積もりを維持して、将来再び使用できるようにする必要があります。つまり、見積もりから作成された注文を変更しても、元の見積もりは変更されません。
類似性を考慮します。特に注文の子テーブルは、見積のデータを格納するために必要な形式であるため、見積の注文構造全体を複製する必要はありませんでした。
私が行くかもしれないと思ったアプローチは、注文に似た見積テーブルを作成し、その後、注文のほとんどの子テーブルを再利用して、見積も処理することです。
(おそらく、quotes_statusとquotes_status_historyには、orders_statusとorders_status_historyを複製しますが、見積もりには異なるステータスがあり、見積もりと注文には関連するステータスしかありません。)
私が引用に再利用したいと思っていたテーブル:
これらのテーブルを再利用するには、次のいずれかを実行する必要があるように思われます。
これらのソリューションはどちらも理想的ではないようで、自分がやりたいことを達成するためのより良い方法があるかどうか疑問に思いました。
理想的には、可能な限り再利用したいと考えています。これは、開発を迅速化し、将来維持する必要がなくなるためです。
私の管理には既に注文を編集するためのページがあり、注文の構造に近づけば近づくほど、注文の編集ページのコードを、見積りの作成/編集ページに再利用する方が簡単だと思いますたす。
すべてのヘルプやアドバイスをいただければ幸いです。
それらを組み合わせるのはどうですか?注文テーブルをベースにして、ステータスフィールドに値を追加します。
ORDERS_HISTORYまたはORDERS_VERSIONテーブルがある場合に実行可能なオリジナルの保持について言及しました。基本的に、注文のステータスが変更されるたびに、メインテーブルを更新しますが、履歴テーブルで以前に表示されていたもののスナップショットを保持します。これにより、引用する古いバージョンの引用/注文をプルアップできます。