精华内容
下载资源
问答
  • 商品库存表设计

    千次阅读 2016-05-14 14:44:34
    商品库存表 +------------+ +----------------+ +------------------+ | product | | product_store | | user_order | +------------+ +----------------+ +------------------+ |id | |id | |id | |price | ...

    Netkiller MySQL 手札

    MySQL MariaDB...

    MrNeo Chan陈景峰(BG7NYT)


    中国广东省深圳市龙华新区民治街道溪山美地
    518131
    +86 13113668890
    +86 755 29812080

    文档始创于2010-11-18

    版权 © 2011, 2012, 2013 Netkiller(Neo Chan). All rights reserved.

    版权声明

    转载请与作者联系,转载时请务必标明文章原始出处和作者信息及本声明。

    文档出处:
    http://netkiller.github.io
    http://netkiller.sourceforge.net

     

    $Date: 2013-04-10 15:03:49 +0800 (Wed, 10 Apr 2013) $

     

    商品库存表

    		
    +------------+              +----------------+               +------------------+
    | product    |              | product_store  |               | user_order       |
    +------------+              +----------------+               +------------------+
    |id          | <--+         |id              | <---+         |id                |
    |price       |    +--1:1--o |product_id      |     |         |user_id           |
    |quantity    |              |sn              |     +--1:n--o |product_store_id  |
    |...         |              |status          |               |                  |
    |category_id |              +----------------+               +------------------+
    +------------+
    		
    		

    product 是产品表总表,product_store每个产品一条记录,同时将sn编号对应到物理产品,这时记录库存需要

    select count(id) from product_store where product_id='xxxxx' and status = 'sell'
    		

    商品销售

    begin;
    select id from product_store where status = 'sale' and product_id='xxxxx' for update;
    insert into user_order(user_id,product_store_id) values('xxxxxx','xxxxx');
    update product_store set status = 'sold' where status = 'sale' and product_id='xxxxx';
    commit;
    		

    售出的商品与用户的订单项一一对应的。

    注意上面,这里使用了排它锁与事务处理,防止一个商品卖给两个人。

    根据上面的思路我们可以将商品属性与product_store表进行一对一匹配,这样每个商品都有它自己的商品属性,甚至价格也可以移到product_store表中,例如不同颜色售价不同。

    展开全文
  • 直接删除库存表,所有库存由数据库根据入库和出库统计算出。(这样库存量会很准确,但是服务器压力会随着数据增多而加大) 2.重新梳理和库存相关的流程,查看哪里库存操作有误,并改正。(需要极大的耐心,由于...
  • 仓库库存表的三种设计方式

    千次阅读 2020-04-27 16:18:52
    这样库存表设计大致如下: 库存表(仓库编码、商品编码、库存属性、库存余额、库存价格等) 出入库表(出入单编号,出入日期,调出仓库,调入仓库,商品编码,数量) 这样的逻辑比较自然,但是,在用户要求追溯历史...

    1、实时库存表+库存出入记录表

     将出入库单据表和库存表分开,当出入库单据被确认时,修改库存表,库存表中总是只保留当前的库存数据。这样库存表设计大致如下:   
      库存表(仓库编码、商品编码、库存属性、库存余额、库存价格等)   
      出入库表(出入单编号,出入日期,调出仓库,调入仓库,商品编码,数量)   
        
      这样的逻辑比较自然,但是,在用户要求追溯历史库存的时候,就比较困难了,只能根据当前库存和单据,进行倒推。要查询某历史时间点的库存时,时间越前,计算量越大。

    2、实时库存+库存变化记录

     将出入库单据表和库存表合为一体,每条单据明细记录上都加上该单据发生后的即时库存余额。简单的说,就是完全模拟原有库存手工帐的帐页形式。   
      举例来讲,在这种模式下,出入库单据辅表(库存表)的结构设计就应大致如下:   
      单据号、货号、批号、出入库方向、数量、价格、货主编号、仓库编号、库存属性、库位编号、库存余额、库存价格、生效时间、失效时间   
        
      这样,查询历史任意时间点的库存数量就会变得很简单。但是这个模式的缺点是,单据确认生成库存帐后,将绝对无法再修改,如果有错误也只能做冲帐处理。而且显然,此模式的出入库单据确认时,所需要进行的操作会是非常复杂的。

    3、定期结算表+库存出入记录表 

     如:月结表(年月,库别,料号,库存量)           
               出入库表(出入单号,出入日期,调出仓库,调入仓库,料号,数量,单据性质)   
         查询库存时用:库存量=月结库存+月结之后入库汇总-月结之后出库汇总    

        缺点是追溯历史库存查看任一日期范围内的期初库存、期中入库、期中出库、期末库存记录的时候计算麻烦。

    参考:http://www.lmwlove.com/ac/ID860

    https://blog.csdn.net/duhongsheng/article/details/79514951?depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-1&utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-1

    展开全文
  • 关于库存表设计

    千次阅读 2016-06-03 09:17:01
    设计到WMS仓储管理系统,物料入库的场景,需要有一个库存表来保存物料的数量。 这里出现了一个问题,我是在物料入库代码中直接产生新的物料记录于库存表? 还是分2步,第一步产生0数量的记录在库存表,第二步在...

     

    在设计到WMS仓储管理系统,物料入库的场景,需要有一个库存表来保存物料的数量。

     

    这里出现了一个问题,我是在物料入库代码中直接产生新的物料记录于库存表? 还是分2步,第一步产生0数量的记录在库存表,第二步在物料入库时候改变库存表的数量?

     

    SAP系统是这样的:

    T-CODE:MMSC   专门用于创建物料库存

    库存表中就有了数量为0的记录

     

    所以,稳妥设计,还是应该先创建物料库存,在操作物料库存中的数量。

     

     

     

     

    展开全文
  • 库存表设计的要求:1)要能够方便地查到每个料件当前的库存;2)要能够方便地查到每个料件历史月份的库存(要能查询历史中每天的库存感觉有点太夸张了,没太大必要);相关表的结构(省略了大部分的无关字段)。。。...

    库存表设计的要求:
    1)要能够方便地查到每个料件当前的库存;
    2)要能够方便地查到每个料件历史月份的库存(要能查询历史中每天的库存感觉有点太夸张了,没太大必要);

     

    相关表的结构(省略了大部分的无关字段)

    tItem
    -------------------------
    fItemCode         --料件编号,唯一
    fDescription

     


    tLocation
    -------------------------
    fLocationCode  --仓位
    fDescription
    fCalc                 --是否为MRP可用(有些仓位比如报废仓的料件当然不能作为MRP运算时的可用料件)

     


    tStockBalance
    -------------------------
    fItemCode
    fLocationCode
    fMonth               -- 料件编号、仓位、月份三项联合唯一
    fOpenQty
    fInQty
    fOutQty
    fAdjustmentQty

     

    设计思路:

    tStockBalance并非软件前台直接操作的表,而且当一个与库存相关单据动作时,而作相关数据动作的表。fOpenQty为前一个月的结转数量,即月初数量,当有IN数量时,如进货,收货,销售退货,转仓转入等入仓单据审批时,fInQty将加入相应数量。当有OUT数量时,如出货,采购退货,转仓转出等出仓单据审批时,则fOutQty将加上相应数量,如果调仓时,则fAdjustmentQty将加上相应数量。

     

    其实,为了节省数据空间,并非每月都需要结转,当一个ITEM在一个LOCATION在这个月有第一个库存动作时,才插入一行数据。如果它在这个LOCATION的之前月份有数据,则将之前的最接近的一个月 fOpenQty + fInQty - fOutQty + fAdjustmentQty 结转为 fOpenQty,否则 fOpenQty 为零。这样设计可以节省空间,也让SQL查询库存有点难度,因为当月没有数据,就要找最接近的前面一个月的库存为当月库存。

     

    还要说明一下 转仓 和 调仓 概念,转仓为料件从一个仓转移到另一个仓位的动作,整体来说,库存价值是不变的。而调仓可不是从一个仓调到另一个仓,而是指将某个仓里的料件数量调大或调小,比如盘点时,发现物料少了,就必须用调仓的方法把数量变小,以与实物相对应,这肯定不是转仓能做到的。同理,盘点发现物料多了,也可以调入。因为这涉及到库存价值的变化,所以在实际的ERP运作中调仓的审批要比转仓的审批严格得多。

     

    现在来查当前的MRP可用库存:

    select
      a.fItemCode,
      b.fDescription,
      c.fLocationCode,
      c.fOpenQty + c.fInQty - c.fOutQty + c.fAdjustmentQty as fStock
    from tStockBalance a
    left join tItem b on a.fItemCode = b.fItemCode
    left join tLocation c on a.fLocationCode = c.fLocationCode
    where
    c.fOpenQty + c.fInQty - c.fOutQty + c.fAdjustmentQty > 0
    and c.fCalc = 1
    and not exists(select 1 from tStockBalance t where a.fItemCode = t.fItemCode and a.fLocationCode = t.fLocationCode and a.fMonth < t.fMonth)

     

    查一查历史月份的MRP可用库存:

    declare @month varchar(7)
    set @month = '2001-01'

    select 
      a.fItemCode,
      b.fDescription,
      c.fLocationCode,
      c.fOpenQty + c.fInQty - c.fOutQty + c.fAdjustmentQty as fStock
    from tStockBalance a
    left join tItem b on a.fItemCode = b.fItemCode
    left join tLocation c on a.fLocationCode = c.fLocationCode
    where
    c.fOpenQty + c.fInQty - c.fOutQty + c.fAdjustmentQty > 0
    and c.fCalc = 1
    and a.fMonth <= @Month
    not exists(select 1 from tStockBalance t where a.fItemCode = t.fItemCode and a.fLocationCode = t.fLocationCode and t.fMonth <= @Month  and a.fMonth < t.fMonth)

     

    这里用到了数据中分组取最大值的SQL语句。

    当然,对于像批号控制LotControl等等更为复杂的应用,这样的设计显然还不够的,示例仅仅为了说明库存表的一般设计和相应的SQL查询方法。

    展开全文
  • 进销存设计之——库存表例子

    千次阅读 2019-01-08 04:55:51
    CREATE TABLE StockPile /* 库存表 */ ( StockPile_ID INT IDENTITY(1,1) NOT NULL, /* 库存编号 , 主键 */ Dept_ID INT NOT NULL, /* 商品所属部门, 外键 ( 参照 DEPT 表...
  • 库存数据库设计

    千次阅读 2013-07-21 02:06:27
    方案1 入库表 ---记录每一次入库信息。 出库表 ---记录每一次...历史库存表---由于库存表中的信息越来越多所以每隔一段时间把库存为零的产品删掉,同时INSERT到历史库存表里。 这样记录库存,每一个入库或出库操作
  • 进销存设计中的库存设计

    万次阅读 2018-03-11 11:53:13
    进销存数据库设计,要调整库存的功能,...这样库存表设计大致如下: 库存表(仓库编码、商品编码、库存属性、库存余额、库存价格等) 出入库表(出入单编号,出入日期,调出仓库,调入仓库,商品编码,数量...
  • 电商数据库核心表设计

    千次阅读 2021-01-22 15:22:01
    1、库存表设计 2、案例讲解 3、优势与劣势 3.1 优势 3.2 劣势 1、库存表设计 商品属性表:由属性名与属性值共同构成商品的一个属性,属性名 atrr_name_id 是product_attr_name的一个外键,而atrr_value_id ...
  • 互联网技术学院周测机试题(三) 一、需求分析 为进一步完善连锁超市经营管理,提高管理效率,减少管理成本,决定...表1:库存表(stock) 序号 字段名 说明 数据类型 .
  • --目前库存表这样设计的 /* ID 商品编号 商品名称 库存数量 占用数量 库位 备注 1 DC182 导轨 3 0 K01 2 DC187 AK 1 0 K05 */ --出库明细表 /* ID 出库日期 出库单号 商品编号 商品名称 订单...
  • 库存管理接口设计

    千次阅读 2019-03-01 11:51:00
    最近在南京一家数据公司实习,负责商城类项目,并且接到写库存管理接口的任务,话...对照下数据与原型图,开始设计接口了 入库接口设计V1.0 由于是在后台管理的商品列表界面点击库存按钮进行编辑 出库接口设计V1.0 ...
  • 库存系统设计

    千次阅读 2018-08-19 21:56:23
     库存是一个复杂度很高的核心系统,提供前端实时查询的能力和后端的商品扣减,还要处理订单取消问题。这对库存系统的准确性和可靠性提出了很高的要求,在各种场景下能保证数据的准确,在遇到突发流量时能保证高可用...
  • 在上一篇围绕商品设计表的时候,我们并没有去设计库存字段的,所以接下来我们就来谈谈库存到底该怎么去设计。 首先,我们看看之前设计的商品,他是与SPU进行多对多的关联,并建立了中间,我们在设计这个数据库...
  • 金蝶K/3即时库存表(数量金额式)学习笔记 插件简介: 使用此即时库存表(数量金额式),可以计算出当前商品的即时库存、安全库存、最高最低库存、以及高超或低于库存量的数值,并且可计算出当前物料的库存金额。...
  • MySQL表设计

    千次阅读 2019-03-08 19:07:10
    2. 结构设计 3.主键 4.选择数据类型 更小的通常更好 简单就好 尽量避免NULL 数据类型尽量用数字型,数字型的比较比字符型的快很多 (1).整数类型 (2). 实数类型 (3).字符串类型 (4). BLOB和TEXT类型 (5)...
  • 商城数据库表设计介绍

    千次阅读 多人点赞 2020-07-18 23:21:48
     使用PowerDesigner对数据以及他们之间的关系进行了粗略的设计得出了如下E-R图:   1.用户 2. 商品 3.商品类别 4.购物车 5. 订单 6.订单明细 7.支付信息 8.收货信息...
  • ![图片说明]... DDGL是订单 GMSL是购买数量 SPID是商品ID !... ...SPXX是商品信息 SYSL是 剩余数量 XSSL是销售数量 ...我想实现触发器 在有新订单插入的时候,商品信息会自动减库存
  • 1.1 、tb_brand 品牌 1.2 、tb_category 分类 和 tb_brand 多对多 1.3 、tb_category 分类 和 tb_brand 的中间 CREATE TABLE `tb_category_brand` ( `category_id` bigint(20) NOT NULL COMMENT '商品...
  • (二)购物商城数据库设计-商品表设计

    万次阅读 多人点赞 2018-05-29 20:54:08
    大家好,今天我们来设计一下购物商城的商品。 我们的目标是结构能够满足下面这张图的搜索: 在设计表之前,我们先来了解下商品中的一个概念:SPU和SKU SPU SPU(Standard Product Unit):标准化产品单元。...
  • 商城 商品模块 数据库 表设计

    万次阅读 多人点赞 2017-05-12 23:30:04
    要实现一个商城,对于商品模块中的数据库表设计不懂,主要是:相同类别的产品的产品参数相同,不同类别的不同,这里就不懂要怎么设计了,所以上网找几篇博客了解什么是SPUSKUARPU PHP商城 商品模块 数据库 表设计...
  • 订单减库存设计

    千次阅读 2020-04-10 07:44:39
    $goods->query('update order set = store- num where store>=num and goodID = 12345'); $goods->query('update order set = store- num where store>...一、扣减库存的三种方案 (...
  • SAP历史库存相关数据,以及库存变化对应的数据变化,可以用于库龄分析报表逻辑设计。 对于初学者来说,库存值通过MB52\MMBE等事务进行前台查询实时库存,但是对于历史库存往往一头雾水。SAP虽然提供了一个功能:MB...
  • 维度建模的事实表设计

    千次阅读 2019-03-29 09:32:35
    事实作为数据仓库维度建模的核心,紧紧围绕着业务过程来设计,通过获取描述业务过程的度量来表达业务过程,包含了引用的维度和与业务过程有关的度量。 事实中一条记录所表达的业务细节程度被称为粒度。 通常粒度...
  • 1.先建活动,往活动表插入一条数据。 2.建券时需要选择活动,同时向券的库存表插入一条数据。
  • 商品数据库表设计

    千次阅读 2017-07-27 15:38:13
     这几个月都在做一个通过淘宝API线下管理淘宝店的系统,学习了很多东西,这里想对淘宝商品表设计用自己的想法表现出来,如果你觉得很扯淡,可以写下自己的看法.OK,切入正题.  淘宝的商品这块的复杂程度,是我见...
  • 电商表设计

    千次阅读 2018-08-14 18:07:18
    淘宝网商品SKU系统设计经验分享 2016年06月13日 19:19:10 阅读数:27653 前言 做了两年多针对淘宝的电子商务数据线下数据系统,越到后面越觉得自己还没入门,不管技术上还是业务上,这篇文章既是对自己的积累的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 38,109
精华内容 15,243
关键字:

库存表设计