客户是做纸类生贸易的,想了解产品的库存,现有一类纸叫圆筒纸,有品牌之分,有克重之分,有宽度之分,每个圆筒纸的重量都各异,销售的时候不是一整个圆筒的卖,而是把一个圆筒切部分长度销售,重量减轻。现要了解仓库内的各规格的圆筒个数有多少,每个圆筒的重量是多少,每个圆筒进仓的重量是多少,我的库存表设计如下: Brand int 品牌
Gram int 克重
Width int 宽
StoreID int 仓库编号
PValue money 原始重量
NValue money 当前重量
Po varchar(10) 批号
AutoID int 自动编号不知这样设计各位兄弟觉得怎样,现在感觉在考虑单据处理时很不好处理,如修改一张单时要将仓库的库存返回制单前的状态,各位发表一下意见,谢谢。

解决方案 »

  1.   

    Brand    int      品牌
    Gram int      克重
    Width int 宽
    StoreID int 仓库编号
    PValue money 原始重量
    NValue money 当前重量
    Po varchar(10) 批号
    AutoID int 自动编号存量表
             ID        产品编号
             Number    数量
             Price     单价
      

  2.   

    id 和上面的产品表中的autoid对应
    number可以理解为纸筒的长度或者重量,在销售一部分时可以在这个基础上减,
    price可以是每单位长度/重量的价格
      

  3.   

    to flyback(黑羽)
    如果有次来货时一次进了2个同品牌,同克重,同宽度,同重的怎么表示?
      

  4.   

    在黑羽基础上建议
    在存量表中增加一个当前长度(或重量,依你客户要求)
    把第一个表中的库号移到存量表
    形成两个表
      一个为基础资料表,存储纸的原始规格
     包含  Brand    int      品牌
    Gram int      克重
    Width int 宽
    PValue money 原始重量
    Po varchar(10) 批号
    AutoID int 自动编号  存量 ID        产品编号
             Number    数量
         当前重量(长度) 
             Price     单价
         storeID   存那个仓库中         这样,某种规格的纸做剪载,好处理,只需根据裁完后的长度或数量更新数据库即可
         品种库只在增加新品种时更新
      

  5.   

    对不起 PRICE 如果是每个单位价格的话,放到基本资料库中
    而NUMBER 用来存放个数,比如一号库有两个50米的,3个裁完后40米的,一个5米的 品种ID5
    二号库中有 一个22米的品种ID4的
       则记录分别为
         ID number  Nlong StoreID
              5     2      50     1
              5     3      40     1
              5     1      5     1
         4   1   22  2
      

  6.   

    to  steelxu5(人间漫步)
    如果这时把1个50米的拿去裁,剩10米结果是不是要变成
         ID number  Nlong StoreID
              5     1      50     1
              5     3      40     1
              5     1      10     1
              5     1      5     1
         4   1   22  2
    然后发现这个单错了,我怎么把它弄回刚才的状态?
         ID number  Nlong StoreID
              5     2      50     1
              5     3      40     1
              5     1      5     1
         4   1   22  2
      

  7.   

    按照你的要求,重量是要反应在库存中的。
    不过我建议你干脆采用一物一码,存放的时候数量都为1,即使是批号等都相同也这样存。
    库存查询的时候则可以根据需要进行sum就可以了。
      

  8.   

    to hawksoft(明月清风) 
    我现在想法也是这样,所以在我的表设计内就没有个数,但是想着在新开出、入库单据时好处理,但一旦有单据要修改感觉就有点晕,不知要怎么处理,你能不能说个简要的流程。
      

  9.   

    其实楼主的思路已经很轻析了,只不过是苦于程序怎么样才能实现简捷明了的方法吧。
    我觉得楼主的结构没有问题,主表就记录当前的信息就可以,在加一个子表,记录一些变更的信息,
    如重量、宽度,这些可变更的参数,其实,就有一点象药品中的液体试剂一样,一次只出库一部分,
    这些楼主应该都想到了,我觉得按这个结构走下去,没有什么不好啊,就是在做出入库单的时候不太好实现,例如:
      入库单:比较容易,因为都是整个的产品
        大宝牌 200克重 1.2米宽 10个 每个原重1.5吨  //<--保存后会产生10条记录。
        小宝牌 100克重 2.2米宽 20个 每个原重0.5吨  //<--保存后会产生20条记录。
      出库单:
      大宝牌 200克重 1.2米宽 2个  每个原重1.5吨  1.2米宽 1.5吨 //<--整个出库
        大宝牌 200克重 1.2米宽 1个  每个原重1.5吨  0.2米宽 XXX吨 //<--部分出库
      小宝牌 100克重 2.2米宽 1个  每个原重0.5吨  1.1米宽 XXX吨 //<--部分出库
    把握好原则,整个出库的,可以录数量,部分出库的,不可以录数量,确保数量只能为1,这样会好处理一些,不知道我的意思楼主明白否?
      

  10.   

    谢谢捧场,有cnmaxu(Max)兄的总结,看来要结账了。
    再次谢谢。