ここにあなたの仲間のオーバーフロー者のための小さな挑戦があります。
私は、Webベースの見積もりアプリケーションに販売する製品のデータベースを使用しています。各製品には次の属性があります。
- 一意のID
- SKU
- 説明
- 価格
- 部品
一般的な考え方として、サンルームを製造しており、約800の汎用モデルがあります。明らかに、顧客と彼の家によっては、一般的なモデルが適合しない場合があり、側面にドアを追加したり、色を変更したりするなどの「オプション」を使用して変更する必要があります。
現在のところ、見積もりシステムでは、お客様がサンルームにどのオプション(新しい色、追加のドアなど)を選択したかは気にせず、一般的なモデル名(例:SUN-0810 for 8 by 10サンルーム)そしてそれの価格を設定します。
私の最終目標は、顧客が選択したモデルとオプションに応じて、見積もりのBOM(部品表または部品リスト)を生成できるようにすることです。すでにすべてのパーツがデータベースに保存されており、モデルにリンクする必要があります。
ここに私の問題があります。それぞれにさまざまなオプションを備えた最大800の異なるモデルがあります。たとえば、標準的なサンルームは、左の壁、中央の壁、右の壁で構成されています。壁は3つの異なる色にすることができ、ドアがないか1つのドアがあります(サンルームのサイズによってはさらに多くなる可能性があります)。センターは、3つの異なる色と11の異なる長さにすることもできます。
一般的なモデルの1つの組み合わせの例を次に示します。
SUN-0810(8フィート×10フィートのサンルーム)
- 左の壁:ドア付きの長さ8フィートの木炭
- 右の壁:ドアのない長さ8フィートの木炭
- 中央:長さ10フィートの木炭
したがって、この特定の組み合わせの新しいモデル名(製品SKU)は次のようになります。
SUN-0810CH-L1-R0。
結局、8 x 10のサンルーム(SUN-0810)の場合、私は次のようになります。
- SUN-0810CH-L0-R0(8 x 10、色=木炭、左壁=ドアなし、右壁=ドアなし)
- SUN-0810CH-L1-R0(8 x 10、色=木炭、左壁=ドア付き、右壁=ドアなし)
- SUN-0810CH-L0-R1(8 x 10、色=木炭、左壁=ドアなし、右壁=ドアあり)
- SUN-0810CH-L1-R1(8 x 10、色=木炭、左壁=ドア付き、右壁=ドア付き)
- SUN-0810SM-L0-R0(8 x 10、色=煙、左壁=ドアなし、右壁=ドアなし)
- SUN-0810SM-L1-R0(8 x 10、色=煙、左壁=ドア付き、右壁=ドアなし)
- SUN-0810SM-L0-R1(8 x 10、色=煙、左壁=ドアなし、右壁=ドアあり)
- SUN-0810SM-L1-R1(8 x 10、色=煙、左壁=ドア付き、右壁=ドア付き)
詳細を保存するために、SUN-0810のような約800の汎用モデルがあります。私はいくつかの計算を行い、製品オプションの可能なすべての組み合わせを保存すると、50000を超える個別の製品が生成されることに気付きました。
50 000の異なる製品すべてがデータベースに保存されているとしましょう。私は、それらのすべてのパーツに対してそれらのパーツを定義する必要があります。上で述べたように、パーツはすでにデータベースに保存されています。次にいくつかの例を示します。
パートSKU| 説明
ENT2828 インチクロススタッド
SCREW6-ZW6mm 亜鉛白ネジ
ATT90ALU90 度アルミネクタイ
最終結果は次のようになります。
SUN-0810CH-L1-R0に含まれるもの:
- ENT28 x4
- SCREW6-ZW x19
- ...。
- ...。
主な問題は、ほとんどのモデルにそれぞれ50以上のパーツが含まれていることであり、50000の異なるモデルすべての構成を定義するには永遠にかかることに気づきました。
それによって、私はこの問題を解決する方法や私のアプローチが実行可能かどうかについての助けやアイデアを探しています。
お時間をいただきありがとうございます。