こんにちは Stackoverflow の偉大な人々! 私は次の課題で頭を悩ませてきました。
特定の販売で販売された製品の合計を計算するクエリがありますが、これは簡単です。私を夢中にさせている課題の 2 番目の部分は次のとおりです。
個々の製品の合計が最終価格と等しくないことを意味する「バンドル」で構成される販売がいくつかあります。販売がバンドルになるためには、「TV」製品が必要です。TV 製品は、それ自体を販売することができ、関連する価格がありますが、バンドルの一部である場合、価格は変動します。これが私がこれまでに持っているものです:
価格表 -
ProdDescription ProductID Rank A Rank B Rank C
Phone 1 $229.00 $92.00 $18.00
Long Distance 2 $46.00 $46.00 $18.00
Internet 786K 3 $103.00 $84.00 $23.00
Internet 1.5M 4 $113.00 $94.00 $23.00
Internet 3M 5 $118.00 $99.00 $23.00
Internet 10M 6 $123.00 $104.00 $23.00
Internet 25M 7 $141.00 $113.00 $41.00
Ultra Internet 8 $188.00 $94.00 $23.00
TV 9 $123.00 $95.00 $23.00
TV and Ultra Int $311.00 $234.00 $141.00
TV and Phone $352.00 $91.00 $46.00
TV, Phone, & Long Dist $398.00 $229.00 $137.00
TV, Phone, & any Int $465.00 $268.00 $206.00
TV,Phone,Long Dist,&any Int $515.00 $274.00 $229.00
ご覧のとおり、製品 ID をバンドルに割り当てていません。b/c バンドル用に別の製品 ID を作成しようとしましたが、個々の製品が選択されている場合、一連のルールに基づいてプログラムで製品 ID を割り当てるために php を使用することも考えました。 、しかし、そのバンドル/セールを構成する個々の製品を最終的にカウント/クエリする能力を失います.
私はこれを考えすぎていますか?SQLを利用するか、少なくともPHP側を制限することは可能ですか?
以下は、その TV 製品が属するバンドルとランキングに基づいて計算された価格を示す表です。これを作成したのは、そのテレビ製品が連結計算に現れた場合に、if ステートメントを使用してこのテーブルを参照することを考えていたからです。
A B C
DoublePlay-Ultra Internet $123 $140 $118
DoublePlay-Phone $123 $(1) $28
TriplePlay-Phone & Long Distance $123 $91 $101
TriplePlay-Phone & Internet 786K $133 $92 $165
TriplePlay-Phone & Internet 1.5 M $123 $82 $165
TriplePlay-Phone & Internet 3M $118 $77 $165
TriplePlay-Phone & Internet 10M $113 $72 $165
TriplePlay-Phone & Internet 25M $95 $63 $147
TriplePlay-Phone & Ultra Internet $48 $82 $165
QuadPlay-Phone & Long Dist & Inter 786K $137 $52 $170
QuadPlay-Phone & Long Dist & Inter 1.5 M $127 $42 $170
QuadPlay-Phone & Long Dist & Inter 3M $122 $37 $170
QuadPlay-Phone & Long Dist & Inter 10M $117 $32 $170
QuadPlay-Phone & Long Dist & Inter 25M $99 $23 $152
QuadPlay-Phone & Long Dist& Ultra Inter $52 $42 $170
この質問はとてつもなく長くなるので、ここでやめますが、これは理にかなっていますか、誰か提案はありますか? どうもありがとう!