商品 分类 属性 表设计 库存

简介:

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

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>  
 
相关文章
|
3月前
|
SQL 前端开发 测试技术
实战SSM_O2O商铺_26【商品类别】批量新增商品类别从Dao到View层的开发
实战SSM_O2O商铺_26【商品类别】批量新增商品类别从Dao到View层的开发
31 0
|
3月前
|
SQL 前端开发 测试技术
实战SSM_O2O商铺_27【商品类别】删除商品类别从Dao到View层的开发
实战SSM_O2O商铺_27【商品类别】删除商品类别从Dao到View层的开发
29 0
|
3月前
|
JSON 测试技术 应用服务中间件
实战SSM_O2O商铺_25【商品类别】商品类别列表展示从Dao到View层的开发
实战SSM_O2O商铺_25【商品类别】商品类别列表展示从Dao到View层的开发
31 0
|
10月前
|
API 开发工具
itemprops.get( 获取标准商品类目属性 )
通过设置必要的参数,来获取商品后台标准类目属性,以及这些属性里面详细的属性值prop_values。
|
11月前
|
测试技术 数据库
实战SSM_O2O商铺_38【商品类别】解除商品与商品类别的关联
实战SSM_O2O商铺_38【商品类别】解除商品与商品类别的关联
62 0
|
11月前
|
JSON 监控 前端开发
基于Springboot外卖系统11:菜品新增类别+类别信息分页查询
后台系统中可以管理分类信息,分类包括两种类型,分别是 菜品分类 和 套餐分类 。当我们在后台系统中添加菜品时需要选择一个菜品分类,在后台系统中添加一个套餐时需要选择一个套餐分类,在移动端也会按照菜品分类和套餐分类来展示对应的菜品和套餐。
117 0
|
11月前
|
前端开发 Java 测试技术
基于Springboot外卖系统15:菜品分页查询模块+根据类别ID填充类别信息
系统中的菜品数据很多的时候,如果在一个页面中全部展示出来会显得比较乱,不便于查看,所以一般的系统中都会以分页的方式来展示列表数据。
122 0
|
11月前
|
供应链 异构计算
商品的spu、sku及其之间的关系
商品的spu、sku及其之间的关系
178 0
宜搭,删除入库表如何更新库存底表,把删除入库表的数量加回底表库存中
删除入库表如何更新库存底表,把删除入库表的数量加回底表库存中
购物车增减商品数量2-修改商品小计35
购物车增减商品数量2-修改商品小计35
82 0
购物车增减商品数量2-修改商品小计35