现要做一进销存,要求要用先进先出法。下面是我想设计的数据结构,请大家发表一下意见。
货品维护表:货品编号(PK),货品名称,库存数 ......
入仓表:批次(pk),日期、货品编号,数量,单价,金额......
出仓表:出仓单号(pk),日期、数量、金额.....主要的数据结构如上,出仓时我未指明是出的那一批次,只是想用程序去从批号最小的开如出起(如:现要出100,但第一批入只有30,第二批入200,出时就第一批30出完,第二批出70,这此想在程序中去做)。但如果这样做的话,对出仓数据修改时不知道此出仓单对应的那一入仓批次的货品,如果出仓时指明是出的那几个入仓批次的,修改时再做判断应该也可以,但就是比较复杂而已。所以在此想请问各位兄弟,先进先出法的数据结构如何设计比较好,程序流程要怎样写好一些呢?请各位大哥不啬指教,先谢谢啦!!

解决方案 »

  1.   

    应该在出仓表中加入入仓批次号,入仓批次号是不需要用户手工指定,直接采用先进先出可以算出
      

  2.   

    出仓单号必须指明批次,虽然复杂但也是没有办法的事情。
    你必须还要考虑如下问题
    第一批入30,第二批入200
    第一次出10。你记录下第一批出10。
    第二次出50,。你记录下第一批出20,第二批出30。
    然后可能用户有要求,第1次出10,修改成出20,此时麻烦就来了。
    到底是1严格按照先进先出来修改第一次以及以后所有出库的数据呢(第一次:第一批出20;第二次,第一批出10,第二批出40);2还是仅仅根据当前在库有的情况来修改第一次的数据(第一批:第一次出10,第二批出10;第二次:第一批出20,第二批出30)。这就牵涉到实际在库情况了。但是即使你的系统是实时的,对操作出库入库的工人来说,他肯定不高兴跑2个地方(去第一批拿10,去第二批再拿10),他一定是先看第一批到底有没有,拿完了再去拿第二批的。
    修改数量减少的时候也有同样复杂的问题。
    所以作为一个程序员来说,千万不要因为问题复杂就想走捷径。
      

  3.   

    楼上说的很正确,不光是出仓要记录入仓批次,库存也要记录入仓批次.
    这样方便统计,而且也可以避免出现楼上的问题
      

  4.   

    首先多谢各位的回复。
    想请问大家
    1、出仓中记录入仓批次时,一般用什么方式来记录?如一个出仓单中某一物品出了三个入仓批次的数据,是否将这三个批次串成字符保存一字段中。还是有别的更好方法呢?
    2、库存要记录入仓批次.有什么用呢?
      

  5.   

    1、出仓中记录入仓批次时,一般用什么方式来记录?如一个出仓单中某一物品出了三个入仓批次的数据,是否将这三个批次串成字符保存一字段中。还是有别的更好方法呢?
    ________________
    若:
    某一物品出了三个入仓批次(入仓批次一致)
    记做3条记录,2,库存要记录入仓批次.有什么用呢?
    ---------------
    库存盘点时要用!
      

  6.   

    这样一说,那好像没有必要单独建一库存表,是否可以入仓表和库存表用同一个表,在入仓表中放上入仓数、出仓数、库存数这些字段。各位大哥,先进先出法究竟要怎能样设计数据结构才比较合理呢?请多多指教啊!!谢谢啦!!!!