2009-07-29 9 views
0

私は引用作成ツールをやっています。すべての顧客情報を格納するテーブルがあります。次に、customer_idキーを共有し、見積もりの​​すべての詳細を保存する見積テーブルがあります。Quote Creator - SQLを使用する最良の方法

引用符で囲まれた製品のすべての詳細を保存したいと思います。今すぐショッピングカートを使用すると、製品表とその製品内のすべての製品の詳細が表示されますが、これは見積もられる製品がほぼ無限大で、ほとんどが引用されるため一度に、そしてすべての異なる価格で。

将来、見積もりが引き上げられた場合、私はすべての製品とその対応する数量と価格を元の見積もりで知りたいと思います。

私が考えることができる唯一の方法は、作成されたすべての見積もりに対して新しいテーブルを作成し、一意のquote_idでテーブル名にプレフィックスを付けることです。しかし、これはテーブルがたくさんあり、非常に乱雑です。あなたがより良い方法を考えることができるなら、助けてください。

ありがとうと私は自分自身を説明した願っOK。

答えて

0

製品テーブルを相互参照できますが、変更される可能性のある情報はコピーできます。つまり、見積もりが作成されたときの情報と、各製品の現在のデータへのリンクが両方あることを意味します。

QuoteProductテーブル(引用はQuoteProductを介した製品で、多くの多の関係を持っているでしょう):

 
---------------   ------------------  --------------- 
| PRODUCT  | 1:many | QUOTEPRODUCT | many:1 | QUOTE  | 
| ProductId |--------<| QuoteId  |>-------| QuoteId  | 
| Price  |   | ProductId  |  | DateCreated | 
| Description |   | Price   |  | Description | 
---------------   | Description |  --------------- 
         ----------------- 

あなたは、独自の主キーをQuoteProduct与えることができるか、それがのProductId、QuoteIdすることができます。単一の見積もりで同じ商品を複数回、別の価格で使用したい場合は、おそらくそれに独自の主キーを付ける必要があります。

0

作成新しいテーブルは、quote_itemsと呼んでください。基本的に、この表には、価格がである見積もり内のすべての製品のコピーが、見積もり時にはとなっています。このquote_itemsテーブルには、外部キーとしての見積IDがあります。

引用符を作成するには、引用符のテーブルに新しいエントリを作成し、引用符内のすべてのアイテムをquote_itemsテーブルにコピーします。引用符の引用IDが作成されました。

関連する問題