以下に示すように、フィールド名を作成した製品テーブルがあります。そのproduct_attributes
下に、すべての製品属性をjsonデータに保存しました。
{"color":["Red","Green","yellow"],"size":["XL","M","XXL","L"],"Brand":["Nike","Fila","Addidus","Lotto"],"Gender":["Male","Female"]}
すべての製品には、上記と同じ形式で独自の属性があります。一部の製品には同じ属性があり、一部の製品には異なる属性があります。たとえば、次のようになります。
{"color":["Green","Blue"],"size":["XXL","L"],"Brand":["Nike"],"Gender":["Male","Female"]}
ここで、言及されたデータに基づいて製品を検索したいと思います。ユーザーは、e コマース Web サイトで行ったように、属性に基づいて製品を検索するオプションがあります。
例 :
--色: ( 赤または緑 ) AND サイズ= ( XXLまたは XL ) AND 性別= ( 男性 )
--サイズ: ( XL ) AND 色: ( イエロー ) AND ブランド: ( NikeまたはLotto )
上記の例に基づいて、ユーザーは要件に応じて任意のものを検索できるため、製品の下にある場合、選択した属性に基づいてデータを返す MySQL クエリが必要です
製品テーブル構造を見てください:
CREATE TABLE `products` ( `id` int(11) NOT NULL,`product` varchar(255) NOT NULL,`product_attributes` longtext NOT NULL,`price` int(11) NOT NULL)ENGINE=InnoDB DEFAULT CHARSET=latin1;
-- テーブルのデータをダンプしていますproducts
INSERT INTO `products` (`id`, `product`, `product_attributes`, `price`) VALUES(1, 'product 1', '{\"Color\":[\"White\",\"Red\"],\"Size\":[\"Large\",\"XL\"],\"Brand\":[\"Nike\",\"Lotto\"],\"Gender\":[\"Female\",\"Male\"]}', 12),(2, 'product 2', '{\"Color\":[\"White\"],\"Size\":[\"XL\"],\"Brand\":[\"Fila\"],\"Gender\":[\"Female\"]}', 21),(3, 'Product 3', '{\"Color\":[\"White\",\"Red\",\"Black\"],\"Size\":[\"Large\",\"XL\"],\"Brand\":[\"Fila\",\"Addidus\"],\"Gender\":[\"Female\"]}', 15),(4, 'Product 4', '{\"Color\":[\"White\",\"Red\"],\"Size\":[\"Large\"],\"Brand\":[\"Fila\"],\"Gender\":[\"Male\"]}', 18);
前もって感謝します。