天猫双十一有个积分换墨盒的活动,总共有50万台天猫魔盒(box),每个用户(user)可以用99个天猫积分(point)兑换一台魔盒,且每人限换一台。
请设计一套java接口并实现下单(order)逻辑。 参考(但不局限于)下面的下单逻辑:
1、创建订单
2、扣减用户积分
3、扣减魔盒库存
4、下单成功
同时请回答:
1、数据库表结构如何设计,有哪些表,分别有什么作用?
2、下单过程中哪些地方可能成为瓶颈?如何解决或改善?
3、是否会用到数据库事务,哪些地方会用到?如果不用数据库事务,如何保证数据的一致性?
魔盒信息表,有字段:all_num(所有魔盒个数),remain_num(剩余魔盒个数)
订单表,有字段:id(订单编号),user_id(用户 id),order_time(下单时间)