如何确保在连接丢失时没有在数据库中创建重复

时间:2017-11-29 10:05:16

标签: java android api http backend

ЕвгенийКравцов: 我用http后端和Android应用程序开发了一些小服务。最近我觉得这种系统缺乏知识。

案例:   - 客户在应用程序中下订单并向服务器发送请求   - 服务器成功收到数据并为订单创建数据库行   - 数据库工作完成后,后端尝试使用200个成功代码响应App。   - 应用程序用户遇到一些互联网连接问题,无法接收服务器响应。应用程序获取超时异常并通知用户,该订单未成功   - 一段时间后,用户设备上的互联网连接恢复,他发送另一个请求与同一个矿工。   - 后端再次收到此信息并为之前的订单创建重复

所以我在数据库中获得了2个订单,但是用户只想创建一个。

问题:我如何防止这种行为?

1 个答案:

答案 0 :(得分:0)

您应该在数据库中向表中添加一个键,例如将键定义为user_id, type的复合键 - 因此特定用户不能使用相同的订单类型生成2个订单。

这将导致第二个db插入失败。