业务情况:通过条码管理A车间成品、B仓库成品、C仓成品业务流程:
A车间包装扫码下线 -> B仓库入库 ->B仓库出库 -> C仓库入库 ->C仓库出库要求:
1)实现A车间条码向B仓库、C仓库流向查询及追溯功能;
2)实现A车间下线产品统计、B仓库、C仓库入出库统计;
3)B仓库、C仓库出库出库时,要检查是否有存货;
A车间每天大约产生10000条下线条码求助:该数据库表结构如何设计

解决方案 »

  1.   

    因为对你的业务理解可能有偏差,我的方法可能不是很准确。
    我觉得放在一张表里就可以实现啊?也可以建立4张表,每个仓库一张表。
    但是如果数据表设计好些的话,可能可以减少业务的复杂程度。要符合:1)实现A车间条码向B仓库、C仓库流向查询及追溯功能;
    估计要建立4张表。
    pid:产品id,psn:产品条码,status,状态(0已入库,1已出库),ptype:产品类别a_table : pid,psn,status,ptype,
    b_table : pid,psn,status,ptype,
    c_table : pid,psn,status,ptype,这样:
    2)实现A车间下线产品统计、B仓库、C仓库入出库统计;
    3)B仓库、C仓库出库出库时,要检查是否有存货;
    也能实现。
    再建立一个视图:union all a_table,b_table,c_table   and status 0 .
    这个视图就是所有产品的当前状态,并且保证这个视图里面的pid是唯一的。
    -------------------------------------------------------------------------------------
    还有就是:把所有数据用两张表来表示。
    p_table :  pid,psn,status,ptype,location(A,B,C仓库)process_talble:保存产品的过程。
    这种比较麻烦,主要是统计比较麻烦。
      

  2.   

    第一种方法:要用事务保证,数据的唯一性。 出库要更新状态,入库要插入记录。
    -------------------------------------------------------------------------
    【更正下第二种方法的设计】:
    第二种方法:和第一种,本质是一样的。第二种更符合范式规定。也要用事务控制。 出库要更新状态,入库要插入记录。
    p_table : pid,psn,ptype 
    process_table:pid,location(A,B,C仓库),status(0入库,1出库),其他辅助字段如:入库时间,出库时间等.
      

  3.   

    谢谢!
    采用了okayu的方法。