Web开发僵局之一:物资定位信息的执行和撤销

 

    现在做的一个ERS,系统要求对物资定位信息进行添加和修改,还要求添加修改的信息要执行后才能生效。

    数据库是Oracle,表之前有一个定好了的物资表MATERIAL和一个定位表LOCATION,根据需要我又添加了一个物资变更历史表HISTORY

    物资表 MATERIAL( ID integer, NAME varchar(50), ...),这个表存储物资的具体信息;

    定位表 LOCATION(     ID                   integer,
 MATERIAL_ID     integer,  //物资ID
 BAR_CODE         varchar(50), //条形码,每条定位信息产生一个条形码
 AREA_ID            integer,      //所在位置
 RESPONSE         integer,     //负责人
 IS_PARENT        varchar(1), //是否父类物资(0:不是,1:是)
 PARENT_ID        integer,    //父类物资ID
 STATE                varchar(1),   //本条记录的状态(0:报废,1:正常,2:未执行(报废),3:未执行(正常))//这个字段本来只定义了两个值0、1,但是在写执行、撤销的时候发现没办法控制是不是未执行,如果再添加一个字段那又有很多地方要修改,所以给这个字段加上了两个值...
)

    历史表 HISTORY(     ID                     integer,
BAR_CODE         varchar(50),
LAST_AREA         integer,
LAST_RES           integer,
NOW_AREA         integer,
NOW_RES           integer,
HANDLER            integer,
CHARGE_DATE    date,
STATE varchar(1)    //本条记录的状态(0:无效,1:生效,2:未执行)//跟LOCATION表一样,也是后来才添加的“2:未执行”这个值。
  )

    最开始没做执行和撤销,添加或修改的操作就是Add或者Update到数据库,后来一看文档上,要经过执行……我就郁闷了,改吧!

    然后就陷入了僵局……主要是这个执行和撤销的流程,当时脑子里一片浆糊……唉……

    边想边写,用了大概半个小时,有了个大致的思路,就给LOCATION表和HISTORY表的STATE字段加了些值,省的加了字段很多地方要修改了。然后修改代码,改成“添加定位信息时,LOCATION表添加一条记录,根据添加的是正常物资还是报废物资STATE为2或3,HISTORY表添加一条记录,STATE="2";修改定位信息时,Update LOCATION表,STATE设为2,HISTORY表操作同上”。这样,执行时,将LOCATION表的STATE修改为0或1,HISTORY表的STATE修改为1,并将之前记录的STATE修改为0(无效); 撤销时,将LOCATION表的STATE修改为2或3,HISTORY表的STATE修改为2,前一条的记录的STATE修改为1。

    (代码改天再贴)

    以上就是执行、撤销的流程。当然,按照上面的流程,撤销操作并不会将记录从数据库中删除,只是修改其状态,必须手动来删除记录。

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值