订单表
order_id,
parent_order_id,
customer_id,
payment_mode,
price ,
shipping_price,
billing_address_id,
shipping_address_id,
create_TS,
update_TS
订购商品
order_id,
order_item_id,
pos_code,
quantity,
unit_price,
shipping_price,
pickup_date,
create_TS,
update_TS,
business_id,
item_id,
delivery_id,
workflow_id,
订单调整表
order_adjustment_id,
order_item_id,
offer_id,
discount_value,
create_ts,
update_ts
下订单时,我会将数据插入这3个表以及其他一些表中。所有这些都发生在交易中。目前,该应用程序使用JDBC与MYSQL DB进行通信。
插入的顺序是 1.订单表。 2. OrderItems表 3. Order_Adjustments表
订单ID是订单商品表中的外键,订单商品ID是订单调整表中的外键。
当客户下订单时,我将父订单划分为基于商店的子订单。 例如,如果购物车包含 store1中的item1和item2 store2的item3和item4
此单车将分为2个单独的订单(由于物流原因)
现在问题是,
我需要知道订单商品表的相应订单ID,以及订单调整表的相应订单商品ID。
因为我单独触发查询而不是批量插入。 甚至可以使用jdbc来实现这样的东西吗?
答案 0 :(得分:0)
您必须首先触发查询到1.订单表。
基于它从表Orders表获取MAX(order_id),然后将其用于外键到其他子表。
答案 1 :(得分:0)
你也可以得到这样的id。 它将返回数据库为您的订单创建的ID。
p = conn.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);
在executeUpdate之后你可以得到这样的id。
ResultSet rs = p.getGeneratedKeys();
rs.getInt(1)
现在你可以获取id并将其用作FK