php 电商系统SKU库存设计

sku 全称为:Stock Keeping Unit,是库存进出计量的基本单元。

我们一般会在电商网站基本都会看到

比如淘宝,JD

 

淘宝和JD的 方式可能不一样,因为我不清楚他们具体是如何设计的, JD是不同的数据都设计成一个商品.

 下面是我的设计思路

mysql 设计,3张表

sku属性表: (编号, 名称)

(1, 颜色)

(2 ,尺码)

 

sku属性值表: (编号, 属性表键值 ,属性编码, 属性值)

(1, 1 ,1, 黑色)

(2, 1 ,2, 白色)

(3, 2 ,1, S)

(4, 2 ,2, L)

 

sku表: (编号, 商品编号,属性组合规格 ,价格,数量, 库存,.. (可以自定义运费等) )

(1, 1 ,1|3, 100,1)   //黑色  S

(1, 1 ,2|3, 90,1)   //白色  S

有多少中组合一次全部添加进去,前台取的时候 直接根据取sku表 商品编号 查询出所有的组合

 

穿一个自己的demo 效果图 

 

不清楚具体设计的好不好,如果不好请谅解 /(ㄒoㄒ)/~~

 

附带送上 根据属性获取商品的所有sku属性的组合的方法

/**
     * 获取属性的所有组合
     * @author GstYon <453885726@qq.com>
     */
    private function getArrSet($arrs,$_current_index=-1){
          
         //总数组
         static $_total_arr;
         //总数组下标计数
         static $_total_arr_index;
         //输入的数组长度
         static $_total_count;
         //临时拼凑数组
         static $_temp_arr;
         
         //进入输入数组的第一层,清空静态数组,并初始化输入数组长度
         if($_current_index<0)
         {
             $_total_arr=array();
             $_total_arr_index=0;
             $_temp_arr=array();
             $_total_count=count($arrs)-1;
             
             $this->getArrSet($arrs,0);
         }
         else
         {
             //循环第$_current_index层数组
             foreach($arrs[$_current_index] as $v)
             {
                
                 //如果当前的循环的数组少于输入数组长度
                 if($_current_index<$_total_count)
                 {
                     //将当前数组循环出的值放入临时数组
                     $_temp_arr[$_current_index]=$v;
                     //继续循环下一个数组
                     $this->getArrSet($arrs,$_current_index+1);
                     
                 }
                 //如果当前的循环的数组等于输入数组长度(这个数组就是最后的数组)
                 else if($_current_index==$_total_count)
                 {
                     //将当前数组循环出的值放入临时数组
                     $_temp_arr[$_current_index]=$v;
                     //将临时数组加入总数组
                     $_total_arr[$_total_arr_index]=$_temp_arr;
                     //总数组下标计数+1
                     $_total_arr_index++;
                 }
     
             }
         }
         
         return $_total_arr;
     }

 

posted @ 2018-05-29 10:15  墨白`Blog  阅读(1732)  评论(0编辑  收藏  举报