製品のリストがあります。それらのそれぞれは、Nプロバイダーによって提供されます。
各プロバイダーは、特定の日付の価格を提示します。その価格は、そのプロバイダーが新しい価格を設定するまで有効です。その場合、プロバイダーは新しい日付で新しい価格を提供します。
現在、MySQLテーブルヘッダーは次のようになっています。
provider_id, product_id, price, date_price_effective
1日おきに、当日に有効な製品/価格のリストを作成します。各製品のリストには、その特定の製品を持つプロバイダーのソート済みリストが含まれています。そのようにして、特定の製品をたまたま最良の価格で提供できる人に注文することができます。
有効な価格を取得するために、を持つすべての行を返すSQLステートメントがありますdate_price_effective >= NOW()
。その結果セットは、次のようなファイルを取得するために必要なソートとフィルタリングを行うルビースクリプトで処理されます。
product_id_1,provider_1,provider_3,provider8,provider_10...
product_id_2,provider_3,provider_2,provider1,provider_10...
これは私たちの目的にはうまく機能しますが、SQLテーブルはおそらくこの種の情報を保存する最良の方法ではないという悩みがあります。この種の問題は、他のより創造的な方法で以前に解決されたと感じています。
SQL以外にこの情報を保存するより良い方法はありますか?または、SQLを使用している場合、私が使用しているものよりも良いアプローチがありますか?