製品リスト内の各製品に使用する価格表を特定する必要があります。特定の製品に使用される正しい価格表は、私が既に知っているいくつかの製品パラメーターによって決まります。ただし、すべてのパラメータがすべての価格表に適用されるわけではありません。3 つの価格表の「基準」の例を次に示します。
pricelist_key param value
A size n1
A weight n2
A color n4
B size n5
B weight n6
B color n8
B type n10
C weight n2
C min_size n5
答えるべき質問は次のとおりです。「pricelist_key で識別される基準値のどのセットが、私の製品を満たしていますか?」
パラメータ値の各セットが一意であることを確認しました。つまり、各価格表には独自の基準および/または値のセットがあります。複数の価格表のすべての基準を満たすことはできません。すべての価格表を作成する必要があるパラメータの完全なセットは事前にわかっていますが、特定の価格表では、それらのパラメータの任意のサブセットを基準として使用できます。
手続き的に、製品をループし、価格表をループし、パラメーターをループします。最初のパラメーターを見逃したために、次の価格表に移動し、すべての基準を満たす製品の価格表が 1 つ見つかるまで続きました。次のステップは、識別された価格表で日付を検索し、そこで見つかった 1 つの価格を取得することです。
しかし、私はセット (このコンテキストでは「価格表基準セット」) を扱っており、これを SQL の自然な問題と見なす方法を理解したいと思います。基準の管理方法を自由に再設計できます。これは、私が描いたコーナーにすぎません。設計の目標は、価格表の基準を定義するために使用できるさまざまなパラメーターを処理することでした。
提案?