products_countries (product_id, country_id)
products_countries (product_id, country_id)
а таблицу products_countries_categories (product_id, country_id, categry_id,)
Что бы можно было выводить не все категории если пользователь выберет определенную страну а только те категории в которых есть товары которые относятся к указанной стране? CREATE TABLE IF NOT EXISTS `product_country` (
`product_id` int(11) NOT NULL,
`country_id` int(11) NOT NULL,
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ;
CREATE TABLE IF NOT EXISTS `product_shop` (
`product_id` int(11) NOT NULL,
`shop_id` int(11) NOT NULL,
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ;
CREATE TABLE IF NOT EXISTS `product_section` (
`product_id` int(11) NOT NULL,
`section_id` int(11) NOT NULL,
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ;
CREATE TABLE IF NOT EXISTS `product_category` (
`product_id` int(11) NOT NULL,
`category_id` int(11) NOT NULL,
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ;
CREATE TABLE IF NOT EXISTS `product_subcategory` (
`product_id` int(11) NOT NULL,
`subcategory_id` int(11) NOT NULL,
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ;
products
удалить shop_id
, country_id
и subcategory_id
? products_countries (product_id, country_id)
данное решение. Ну как быть если после того как пользователь выберет определенную страну, в ней выводить не все разделы, категории и подкатегории а только те в которых есть продукты относящиеся к выбранной стране? CREATE TABLE IF NOT EXISTS `country` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(256) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
CREATE TABLE IF NOT EXISTS `shop` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(256) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
CREATE TABLE IF NOT EXISTS `product_coutry` (
`product_id` varchar(256) NOT NULL,
`country_id` int(11) NOT NULL,
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ;
CREATE TABLE IF NOT EXISTS `sections` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(256) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
CREATE TABLE IF NOT EXISTS `categories` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(256) NOT NULL,
`section_id` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
CREATE TABLE IF NOT EXISTS `subcategory` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(256) NOT NULL,
`category_id` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
CREATE TABLE IF NOT EXISTS `products` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(256) NOT NULL,
`description` varchar(256) NOT NULL,
`url` varchar(256) NOT NULL,
`price` double NOT NULL,
`shop_id` int(11) NOT NULL,
`created` datetime NOT NULL,
`modified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
products_countries (product_id, country_id)
а таблицу products_countries_categories (product_id, country_id, categry_id,)
Что бы можно было выводить не все категории если пользователь выберет определенную страну а только те категории в которых есть товары которые относятся к указанной стране? CREATE TABLE IF NOT EXISTS `product_country` (
`product_id` int(11) NOT NULL,
`country_id` int(11) NOT NULL,
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ;
CREATE TABLE IF NOT EXISTS `product_shop` (
`product_id` int(11) NOT NULL,
`shop_id` int(11) NOT NULL,
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ;
CREATE TABLE IF NOT EXISTS `product_section` (
`product_id` int(11) NOT NULL,
`section_id` int(11) NOT NULL,
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ;
CREATE TABLE IF NOT EXISTS `product_category` (
`product_id` int(11) NOT NULL,
`category_id` int(11) NOT NULL,
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ;
CREATE TABLE IF NOT EXISTS `product_subcategory` (
`product_id` int(11) NOT NULL,
`subcategory_id` int(11) NOT NULL,
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ;
products
удалить shop_id
, country_id
и subcategory_id
?