游戏中公会正副会长刚好就(这么凑巧)同时同意一个人进入公会,那么这个人将会被添加两遍,怎么解决

「已注销」 2019-01-19 05:23:48
游戏中公会正副会长刚好就(这么凑巧)同时同意一个人进入公会,那么这个人将会被添加两遍,怎么解决
...全文
1670 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
末先 2019-01-25
  • 打赏
  • 举报
回复
而且话说加入的时候都不检测一下的么,那这样一个人不是能加好几个工会
末先 2019-01-25
  • 打赏
  • 举报
回复
很少有这么凑巧的吧,我觉得大概是因为一个人同意之后,其他人的列表没有及时刷新去掉已经进工会的人
luj_1768 2019-01-23
  • 打赏
  • 举报
回复
这个人在游戏中是唯一的么?通常修改信息需要锁定相关数据,修改完成需要在相关范围内发通告。
phil002 2019-01-22
  • 打赏
  • 举报
回复
引用 6 楼 淡燚的回复:
第一,基本不可能这么凑巧。第二,你做工会用户名肯定有主键吧,有主键不可能重复
名字建立唯一索引。。。。。
夏目知秋 2019-01-22
  • 打赏
  • 举报
回复
感觉同一个键改了两次相同的结果也没关系吧
DustToShoulder 2019-01-22
  • 打赏
  • 举报
回复
答案把所有解决方案都写完了,前提是不考虑成本
淡燚 2019-01-21
  • 打赏
  • 举报
回复
第一,基本不可能这么凑巧。第二,你做工会用户名肯定有主键吧,有主键不可能重复
天外怪魔 2019-01-21
  • 打赏
  • 举报
回复
加锁,根据Key判断,已经加过了,不重复添加。
植地雅哉 2019-01-21
  • 打赏
  • 举报
回复
数据库设置uniq也可以呀,但还是推荐用redis,这可以让数据库减少压力
飞鱼翔月 2019-01-21
  • 打赏
  • 举报
回复
入会这个行为不是一个频繁操作吧,每次入会完成后去重算不算一个简单粗暴的方法?
海上升明月513 2019-01-21
  • 打赏
  • 举报
回复
或者数据库设置uniq也可以呀,不过推荐用redis,给数据库减少压力
海上升明月513 2019-01-21
  • 打赏
  • 举报
回复
用redis做缓存嘛,之后处理缓存就可以了呀
MiceRice 2019-01-20
  • 打赏
  • 举报
回复
根据不同的数据模型,有不同解决方案,比如: 1)隶属公会是用户的一个属性字段,那么其实你用的是Update操作,被添加N次公会也没有任何实质差异; 2)隶属公会用的是一张关联关系记录表,那么每次添加是Insert一行新记录进去,这种情况如果设置表的主键(或建立唯一索引)是:用户ID、公会ID,那么实际上第二次添加操作会直接失效;又或者执行的是InsertOrUpdate操作也没啥问题。 3)如果公会用的是流水记录表,那么复杂性高些,需要开启事务。所以也强烈不建议如此操作。
鸣鸣Amadues 2019-01-20
  • 打赏
  • 举报
回复
用数据库主键来代表唯一的一个人,就不会有重复的人了。 如果没有用数据库主键,又想实现唯一性,就需要在应用层加锁,实现起来麻烦又影响效率。

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧