当添加一条订单时首先会根据选中产品的id后将整个产品的信息添加到一个集合,如一个map集合,使用java中的BeanUtils.populate(bean, properties);的工具类将商品信息添加到一个自定义的utils类中,获取Utils类中的get/set方法添加到订单的子表,如:订单的子表中包含产品的一些详情,和订单的主表的id。这时添加生成一个订单就完成了,
如果订单里面的产品删除的话,回遇见各种问题
1.删除时,获取订单id ,只是删除订单子表里面的数据,订单主表的数据还是会存在,照样可以提交
2.删除时,获取订单id,删除订单主表,删除的是整个订单都全部删除了,也不可以,如果订单子表有多条数据就会产生有产品没有订单的尴尬,
解决办法:
引入一个中间表,中间表。存储中间表的id,订单主表的id,订单子表的id。
如果要删除订单产品时,程序获取页面传入的中间表的id和产品id,根据这两个id获取订单主表的数据和订单子表的数据
删除时需要进行if判断:
判断方式:
1.首先根据获取页面的订单的id和产出产品的id
2.根据火炬的页面的订单id查询出该订单子表中的数据,如果有多条记录就根据产品的id删除对应的订单子表中的数据。
3.如果一个订单里面的订单子表中只有一条数据,只需要根据订单主表的id获取订单子表的id删除订单子表和订单主表。