现在做一进销存系统。
涉及到订单的修改..订单主表:
id,order_id,order_date,quantity..。订单明细表:
material_id,order_id,material_name,material_type,material_qty...如上两表大致的基本结构.我目前对主表和明细表同时更新呢采用事务处理机制.但假如一个订单中包含三个物料明细,修改该订单,使其只有2个物料明细,并且其中一个物料的明细数量也进行修改..这样一来,对该订单的更新就很麻烦,似乎很不好处理。
主表还好说,直接update,但对应的明细更新如何处理呢(同时涉及到明细表的修改,删除,添加)...以前没做个这个,感觉很麻烦,希望做过进销存的兄弟伙给个意见
大家如何处理的??

解决方案 »

  1.   

    1.一起用事务2.主表用update,明细表接着用 update 明细表....where order_id=主表.order_id,不就行了吗?
      

  2.   

    看你的表结构中,主表中有一个quantity,这个字段是否可以去掉直接关联从表就行了
    或者在子表中建触发器更新主表但事务还是一定要用的
      

  3.   


    例如从表中有三条记录
    JH20080001,CH20120021,物料A,类型A,30
    JH20080001,CH20120018,物料B,类型A,20
    JH20080001,CH20120045,物料C,类型C,50
    如上是订单JH20080001中的三个物料明细记录.
    更新该订单,将CH20120045物料删除,CH20120021物料数量改为20.
    同时新增一个物料CH20120034到该订单中,最后的结果是:JH20080001,CH20120021,物料A,类型A,20
    JH20080001,CH20120018,物料B,类型A,20
    JH20080001,CH20120034,物料C,类型C,15
    这个可以使用事务+触发器全部完成么?又是删除,又是修改,又是 添加的?汗一个先,呵呵..
      

  4.   

    1 对于关联查询:
    你的主表与从表都是通过order_id这个字段关联的
    可以把从表中做个视图:select order_id,sum(material_qty) from 从表 group by order_id;
    然后主表与这个视图就可以取出来总数量了
    2.利用触发器
     你把触发器建在从表中,当数据发生变化时,去更新主表中的这个数量字段利用事务时,触发器也是事务的一个部分,出错了,事务也会失败的,这个不用担心。