2

製品リストのフィルタ アルゴリズムを構築しようとしています。

たとえば、私は 2 台のテレビを持っています。

最初のものは: 画面サイズ 117 Cm、ブランド Samsung。2 つ目は、画面サイズ 203 cm、ブランド Sharp です。

そして、私は次のフィルターを持っています:

ブランド: サムスン、シャープ

画面サイズ:117cm、203cm

Samsung TV のみを表示したい場合、Samsung フィルターをチェックすると、フィルターから画面サイズ 203 を削除する必要があるという結論に達するにはどうすればよいですか。

しかし、シャープ テレビとサムスンを同時にチェックすると、両方の画面サイズ フィルターが表示されるはずです。

いくつかの php/mysql アルゴリズムのアイデアを求めています。

私が求めていることを理解していただければ幸いです。

例については、こちらをご覧ください: http://www.ebay.co.uk/sch/Televisions-/11071/i.html?_dcat=11071&Display%2520Technology=LED%2520LCD&rt=nc

ウェブサイトは、ユーザーがフィルターをチェックする前に、製品の数を知っています: 例: "40" - 49" (326)) -> ユーザーがそのフィルターをチェックする前に、326 個の製品があることを知っています。

つまり、フィルターでチェックしたチェックボックスは、製品で組み合わせが利用できない場合は無効にする必要があります。

私は3つのテーブルを持っています:products(id_product、name)、filters(id_filter、name、id_category)、filters_values(id、id_product、id_filter、value)

私のproduct_listページには、チェックされると製品を返すフィルターのみが表示されるはずです。

私の最初の考えは、各フィルター値の組み合わせから sql を作成することです。例: 4 つの値を持つ 10 個のフィルター: 40 sql、フィルターが製品を返すかどうかを確認するだけですが、これはデータベースに多くのストレスを与える方法です。

たとえば、4 つの値を持つ 1 つのフィルターがある場合、特定の値の製品があるかどうかを確認するには、4 つのクエリを作成する必要があります。

私は 10 個のフィルターを持っており、それぞれに 4 つの値があり、40 個の SQL クエリを実行する必要があります。これはたくさんあります。どうすればこれをより速く行うことができますか?

ありがとう

4

1 に答える 1