zoukankan      html  css  js  c++  java
  • 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;
         }
  • 相关阅读:
    如何解决错误【selenium.common.exceptions.SessionNotCreatedException】
    VSFTP常用功能及参数配置
    ROS白名单服务端PHP脚本,客户端ROS脚本
    ocserver标准配置文件
    linux send与recv函数详解
    LINUX 恢复rm删除的文件
    C语言实现md5函数代码
    linux c语言获取CPU,内存,网速,磁盘使用,IO
    linux c语言fork socket 并发回射服务器
    杨惠兰不值得任何人付出
  • 原文地址:https://www.cnblogs.com/inkwhite/p/9103684.html
Copyright © 2011-2022 走看看