У меня есть пара таблиц в веб-приложении, которое я пишу на PHP, и я хотел бы знать, будет ли это хорошей практикой.
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'
И затем, соответственно, проанализируйте это, чтобы отобразить изображение каждого варианта.
Является ли хранимая функция, которая возвращает этот формат, лучшей идеей? Или мне следует нормализоваться еще дальше, и если да, то как?