首页 > 代码库 > 项目中客户端,服务端验证,数据库联合唯一约束,事务管理。
项目中客户端,服务端验证,数据库联合唯一约束,事务管理。
项目中有个需求,发布一个活动,记录下参加该活动的id和参与人id,同时调用接口,往收藏夹中添加一条记录,往交易表中添加一条记录。最后根据返回的结果,给出不同的提示信息。
1.如果当前的在jsp页面上面做处理,判断是否参与过。参加过之后,参加按钮不可点。没有参加的情况,参加按钮可以点。
2.jsp客户端加上js处理,参加按钮点击完之后,按钮不可点。
3.在controller中,业务逻辑开始前,再次java判断是否参加过该活动。
4.在数据库中参与表(活动id,参与人id)加上联合唯一约束。根据异常来处理不重复参加。
5.将以上几个表的操作放到一个事务中处理。避免参加人重复参加的情况。
总结:不要相信客户端的验证,不要相信网络的时延(多次点击多次提交的情况~~!!),正常情况下,以上1到5任何一个情况都可以限制参与人只参加一次活动,然而项目上线在实际中却还是出现了重复参加的记录。所以只有将以上情况联合起来一起处理。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。