2009-07-07 24 views
0

私はカスタムショップを構築することだし、ここで私たちのどれもに同意することはできません一つのことは、私たちは製品のサイズ/数量フィールドを保存する方法です。私はこれに関する情報を簡単に見つけることができず、人々がこれに前に取り組んできた方法を疑問に思っています。製品のサイズ/数量をデータベースに保存する最も良い方法は?

現在、我々は一つのフィールドで、製品ごとにJSONのようなもので、完全なサイズ/数量情報を記憶又は他のその製品に縛られる可変サイズのキー/値リストを作成するのいずれかを考えています。

あなたがこの情報を保存するためにどのような方法で選ぶのですか?

答えて

0

伝統的な方法は、整数でない量と組み合わせて「オンス」として単位のルックアップテーブルを持つことです。

0

私はあなたの製品のために複数の非計算できるサイズ/量を持つことができると仮定しています。

パック、12 ボックス、22

データベースでこれをやっている場合は、現在の考え方はあなたが製品(PRODUCT_ID)へのリンク、サイズと数量を含む新しいテーブルを正規化して作成する必要があると言います。これは私がやることですが、JSONやキーと値のペアを持たない言語でプログラムします。

しかし、あなたが選択するソリューションは、アプリケーションのサイズ/数量で何をするかによって大きく異なると思います。これらは単純に表示されているのでしょうか、それとも他の目的のためにラインの下で使用される可能性がありますか?また、デフォルトのサイズ/数量はありますか?

1

複雑に増加、それぞれがこれに取り組むには、いくつかの方法、あります

ないストアユニット情報の操作を行います。

項目のレコードが記述でそれを保存することができますが。

アイテムテーブル:そして

ID | Description  
---+--------------------------------- 
09 | Red Sox Tee Shirt (Case of 12) 
10 | Red Sox Tee Shirt (each) 
11 | 500lb Nylon Rope (per foot) 

注文テーブルには、単に量が十進値であるItem ID + Quantityを格納する必要があります。

ストアアイテム注文テーブルに次に

Description  | Unit | UnitPrice  
------------------+------+---------- 
Red Sox Tee Shirt | Case |  45.00 
500lb Nylon Rope | Foot |  0.25 

の一部としてユニットは、単に量が十進値であるItem ID + Quantityを格納する必要があります。項目

項目表の関連する子テーブルとして

ストアコンバーチブル単位:この場合

ID | Description  
---+---------------- 
10 | Red Sox Tee Shirt 
11 | 500lb Nylon Rope 

Item_Unitテーブル

ID | Unit | UnitPrice 
---+--------+---------- 
10 | Each |  6.00 
10 | Case12 |  60.00 
11 | Foot |  0.25 
11 | Spool | 250.00 

、注文レコードはItem IDを持っている必要があります+ Unit + Quantity

最も柔軟かつ複雑- これは、あなたがユニットを保存する「ユニット」テーブルを持っている最後の形式の拡張子が、あるだろう

転換ユニット、そのユニットの種類(長さ、音量など...)と共通のユニットとの関係。そうすれば、実際には1つのユニットから別のユニット(1000フィート== 1スプール)に変換することができます。

しかし、あなたはそのレベルの複雑さを必要とすることはほとんどありません。

+0

あなたの提案に感謝します。私たちが持っている特別なセットアップは、衣料品店のものとほとんど同じですので、私たちのユニットは本当に「1」になるでしょう。例えば、私たちはティーシャツを持っていて、3つの媒体と2つの媒体があります。私はアイテムテーブルを持っていると思っているし、それぞれの数量/サイズのペアのエントリを持つ別のitem_sizesテーブル。 さらに、アイテムのサイズ/ qtyリスト全体をJSON配列として格納します(つまり、クエリを実行してからロジックのsize/qty配列に展開します)。作業は簡単ですが、きれいな感じがしません。 –

0

私はいつでも可能な限り整数を使用します。例えば。浮動小数点数を計算する際に小さな誤差が生じる可能性があるため、0.10mの代わりに100mmを使用します。

関連する問題