商品 分类 属性 表设计 库存

根据不同的商品分类选择,特殊商品出现不同 扩展属性/规格,如:衣服出现尺码,颜色

1.商品分类表

Java代码  商品 分类 属性 表设计 库存
  1. CREATE TABLE `category` (  
  2.   `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '分类ID',  
  3.   `pid` int(11) DEFAULT '0' COMMENT '分类父ID',  
  4.   `level` tinyint(3) unsigned NOT NULL DEFAULT '1' COMMENT '层数',  
  5.   `name` varchar(100) DEFAULT NULL COMMENT '分类名称',  
  6.   `seo_title` varchar(20) DEFAULT NULL COMMENT 'SEO标题',  
  7.   `seo_keyword` varchar(20) DEFAULT NULL COMMENT 'SEO关键字',  
  8.   `seo_desc` varchar(50) DEFAULT NULL COMMENT 'SEO描述',  
  9.   `cate_tree` varchar(100) DEFAULT NULL COMMENT '分类树形结构',  
  10.   `listorder` int(11) DEFAULT '0' COMMENT '排序',  
  11.   PRIMARY KEY (`id`),  
  12.   KEY `pid` (`pid`)  
  13. ) ENGINE=MyISAM AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;  
  14.   
  15. INSERT INTO `category` (`id`, `pid`, `level`, `name`, `seo_title`, `seo_keyword`, `seo_desc`, `cate_tree`, `listorder`)  
  16. VALUES  
  17. (101'日常所需''''''''1'0),  
  18. (212'注册公司''''''''1-2'0),  
  19. (323'国内游''''''''1-2-3'0),  
  20. (434'上海游''''''''1-2-3-4'0),  
  21. (512'企业开户''''''''1-5'0),  
  22. (601'办公硬件''''''''6'0);  

分隔符要用 ‘-’,不要用下划线 ‘_’

 

2.分类属性表(核心)

Java代码  商品 分类 属性 表设计 库存
  1. CREATE TABLE `category_fields` (  
  2.   `field_id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '分类属性表',  
  3.   `category_id` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '分类ID',  
  4.   `field_name` varchar(100) NOT NULL DEFAULT '' COMMENT '属性code',  
  5.   `title` varchar(255) NOT NULL DEFAULT '' COMMENT '名称',  
  6.   `description` varchar(255) NOT NULL DEFAULT '' COMMENT '描叙',  
  7.   `required` enum('no','yes') NOT NULL DEFAULT 'no' COMMENT '是否必填',  
  8.   `formtype` varchar(255) NOT NULL DEFAULT '' COMMENT '表单类型',  
  9.   `choices` text NOT NULL COMMENT '值选项',  
  10.   `sort` int(11) NOT NULL DEFAULT '0' COMMENT '排序',  
  11.   `unit` varchar(10) DEFAULT NULL COMMENT '单位',  
  12.   `min` int(11) unsigned DEFAULT NULL COMMENT '文本框时的最小值',  
  13.   `max` int(11) unsigned DEFAULT NULL COMMENT '文本框时的最大值',  
  14.   PRIMARY KEY (`field_id`)  
  15. ) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;  
  16.   
  17. INSERT INTO `category_fields` (`field_id`, `category_id`, `field_name`, `title`, `description`, `required`, `formtype`, `choices`, `sort`, `unit`, `min`, `max`)  
  18. VALUES  
  19. (11'renjunyusuan''人均预算''''no''text'''0'元'12),  
  20. (21'renshu''旅游人数''''no''text'''0'', NULL, NULL),  
  21. (31'daogou''允许导购''''no''radio''是 否'0'', NULL, NULL),  
  22. (41'days''预计天数''''no''checkbox''2天1夜 3天2夜'0'', NULL, NULL);  

商品 分类 属性 表设计 库存
 3.商品属性值表

Java代码  商品 分类 属性 表设计 库存
  1. CREATE TABLE `mall_product_field_value` (  
  2.   `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '商品属性值',  
  3.   `product_id` int(11) NOT NULL DEFAULT '0' COMMENT '商品ID',  
  4.   `field_id` int(11) NOT NULL DEFAULT '0' COMMENT '属性ID',  
  5.   `value` text COMMENT '属性值',  
  6.   PRIMARY KEY (`id`)  
  7. ) ENGINE=InnoDB DEFAULT CHARSET=utf8;  

 

二规格表

Java代码  商品 分类 属性 表设计 库存
  1. CREATE TABLE `catalog_standard` (  
  2.   `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '分类规格表',  
  3.   `pid` int(11) NOT NULL DEFAULT '0',  
  4.   `level` int(11) NOT NULL DEFAULT '1',  
  5.   `catalog_id` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '分类ID',  
  6.   `name` varchar(100) NOT NULL DEFAULT '' COMMENT '规格code',  
  7.   `value` varchar(100) NOT NULL DEFAULT '' COMMENT '值选项',  
  8.   PRIMARY KEY (`id`)  
  9. ) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8;  
  10.   
  11. INSERT INTO `catalog_standard` (`id`, `pid`, `level`, `catalog_id`, `name`, `value`)  
  12. VALUES  
  13. (10135'color''颜色'),  
  14. (20135'size''尺码'),  
  15. (31235'red''红色'),  
  16. (41235'black''黑色'),  
  17. (52235'S''S'),  
  18. (62235'M''M'),  
  19. (72235'L''L');  

规格checkbox勾选值表

Java代码  商品 分类 属性 表设计 库存
  1. CREATE TABLE `mall_product_standard_value` (  
  2.   `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '商品规格值',  
  3.   `product_id` int(11) NOT NULL DEFAULT '0' COMMENT '产品ID',  
  4.   `root_standard_id` int(11) NOT NULL DEFAULT '0' COMMENT 'level=1的StandardID',  
  5.   `standard_id` varchar(100) NOT NULL DEFAULT '0' COMMENT '规格ID',  
  6.   `value` varchar(100) NOT NULL DEFAULT '' COMMENT '值',  
  7.   PRIMARY KEY (`id`)  
  8. ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;  
  9.   
  10. INSERT INTO `mall_product_standard_value` (`id`, `product_id`, `root_standard_id`, `standard_id`, `value`)  
  11. VALUES  
  12. (111'3''红色1'),  
  13. (211'4''黑色'),  
  14. (312'5''S222')  

规格勾选后,js生成不同规格组合的表单(价格/库存/货号),修改勾选规格名称,表单的规格名称也随之变化商品的基础属性库存不允许填写,库存是自动加和的
商品 分类 属性 表设计 库存
 

不同规则选项组合表

Java代码  商品 分类 属性 表设计 库存
  1. CREATE TABLE `mall_product_standard_value_group` (  
  2.   `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '商品规则组合值',  
  3.   `product_id` int(11) NOT NULL DEFAULT '0' COMMENT '产品ID',  
  4.   `standard_ids` varchar(100) DEFAULT NULL COMMENT '规格组合standard_value_ids',  
  5.   `inventory` int(11) NOT NULL DEFAULT '0' COMMENT '库存',  
  6.   `price` int(11) NOT NULL DEFAULT '0.00' COMMENT '价格(分)',  
  7.   `sku` varchar(60) DEFAULT NULL COMMENT '货号',  
  8.   PRIMARY KEY (`id`),  
  9.   UNIQUE KEY `standard_group` (`standard_ids`,`product_id`)  
  10. ) ENGINE=InnoDB DEFAULT CHARSET=utf8;   
数组排列组合 
Java代码  商品 分类 属性 表设计 库存
  1. <script>  
  2.     function test() {  
  3.         var temparr = [  
  4.             ["M""XL"],  
  5.             ["红色""白色"],  
  6.             ["长""短"],  
  7.             ["1""2"],  
  8.             ["A""B"],  
  9.             ["无""有"]  
  10.         ];  
  11.         var ret = doExchange(temparr);  
  12.         document.write("共有:" + ret.length + "种组合!<br/>");  
  13.         for (var i = 0; i < ret.length; i++) {  
  14.             document.write(ret[i] + "<br/>");  
  15.         }  
  16.     }  
  17.     function doExchange(doubleArrays) {  
  18.         var len = doubleArrays.length;  
  19.         if (len >= 2) {  
  20.             var len1 = doubleArrays[0].length;  
  21.             var len2 = doubleArrays[1].length;  
  22.             var newlen = len1 * len2;  
  23.             var temp = new Array(newlen);  
  24.             var index = 0;  
  25.             for (var i = 0; i < len1; i++) {  
  26.                 for (var j = 0; j < len2; j++) {  
  27.                     temp[index] = doubleArrays[0][i] + ',' + doubleArrays[1][j];  
  28.                     index++;  
  29.                 }  
  30.             }  
  31.             var newArray = new Array(len - 1);  
  32.             for (var i = 2; i < len; i++) {  
  33.                 newArray[i - 1] = doubleArrays[i];  
  34.             }  
  35.             newArray[0] = temp;  
  36.             return doExchange(newArray);  
  37.         } else if (len == 1) {  
  38.             return doubleArrays[0];  
  39.         } else {  
  40.             return doubleArrays;  
  41.         }  
  42.     }  
  43.     test();  
  44. </script>  
 
上一篇:一篇文章带你了解CSS clear both清除浮动


下一篇:linux系统一键安装php运行环境apache,mysql等