OK - ここで何か助けが必要です - ここで噛み砕くことができなかったかもしれません - しかし、私は常に最低 10 件の結果を返す SQL クエリを書きたいと思っています。最初の条件が適用され、結果セットが 10 件を超えた場合は、次の条件に進みます。
例 5.00 ポンド未満の小さな赤いプラスチック製のおもちゃの車をすべて見つけます。
画面には常に最低 10 個のアイテムを表示したいと考えています。「小」、「赤」、「<」の順に検索したい。£5.00」。クエリが 10 を超えるアイテムを返した場合は、できるだけ多くのタグ (プラスチック、おもちゃ、車など) でフィルタリングを続けます。一致する数が多いほど、ランク付けが高くなります (つまり、製品に 3 つのタグがすべて関連付けられている場合)。それ – リストの一番上に表示されます。製品が 1 つのタグのみに一致する場合、これはリストの下に表示されます。
Price Table
ID Price
1 £1.50
2 £2.50
3 £6.00
.
Colour Table
ID Colour
1 Red
2 Blue
3 Yellow
.
Size Table
ID Shape
1 Small
2 Medium
3 Large
.
Products Table
ID Description price_id colour_id size_id
1 Item 1 1 2 2
2 Item 2 2 2 1
3 Item 3 1 1 1
4 Item 4 3 2 3
5 Item 5 3 1 2
6 Item 6 1 1 2
7 Item 7 1 1 3
.
Tags Table
ID Description
1 Shiny
2 Plastic
3 Wood
4 Toy
5 Disney
6 Animal
7 Car
.
Items_Tags Table
ID tag_id product_id
1 1 1
2 4 1
3 7 1
4 2 2
5 3 3
6 4 3
7 7 6
8 7 7
9 7 2
かなり長い例ですが、要点を理解していただければ幸いです。すべてのフィルターをタグ テーブル内に配置する利点があるかどうか疑問に思いました。つまり、価格、色、サイズなどで、タグ テーブルを検索するだけで済みます。
アイデアはありますか?
ありがとう