CREATE TABLE `Products` ( `id` int PRIMARY KEY, `name` varchar(255), `price` varchar, `...` varchar(255) ); CREATE TABLE `Attributes` ( `id` int PRIMARY KEY, `name` varchar(255) ); CREATE TABLE `AttributeOptions` ( `id` int, `name` varchar(255), `attribute_id` int, FOREIGN KEY(`attribute_id`) REFERENCES `Attributes` (`id`) ); CREATE TABLE `Product_Option` ( `id` int, `attributeOption_id` int, `product_id` int, `displayOrder` int, FOREIGN KEY(`attributeOption_id`) REFERENCES `AttributeOptions` (`id`), FOREIGN KEY(`product_id`) REFERENCES `Products` (`id`) );