我在用 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'
然后相应地解析它以显示每个变化的图像。
返回该格式的存储函数是最好的主意吗?或者我应该进一步规范化,如果是这样,如何?