PHPでコーディングしているWebアプリケーションにいくつかのテーブルがありますが、これが適切かどうかを知りたいと思います。
CREATE TABLE `products`(
`product_id` int NOT NULL auto_increment,
`name` varchar(255) NOT NULL,
`variations` varchar(255) default NULL,
PRIMARY KEY (`product_id`)
)
CREATE TABLE `variations`(
`variation_id` int NOT NULL auto_increment,
`name` varchar(255) NOT NULL,
`kind` varchar(255) default NULL,
PRIMARY KEY (`variation_id`)
)
たとえば、製品は次のようになります。
1,'Cup','1,2,3'
バリエーションは次のようになりますが:
1,'Green','Color'
2,'Glass','Texture'
3,'Blue','Color'
多くの製品が同じ色/テクスチャを持つことができるように。私が見つけた問題は、データを次のように返す単一のクエリにこれを当てはめることができないということです。
1,'Cup','1,Green,Color-2,Glass,Texture-3,Blue,Color'
その後、これを適宜解析して、各バリエーションの画像を表示します。
その形式を返すストアド関数は最良のアイデアですか?または、さらに正規化する必要がありますか?もしそうなら、どのように?