为了账号安全,请及时绑定邮箱和手机立即绑定

收货地址需求

收货地址需求

达令说 2019-03-01 10:37:37
当用户首次创建收货地址时,自动设置为默认地址,之后用户添加新的默认地址或修改其他收货地址为默认收货地址时,原来的默认收货地址变更为非默认地址,如何设计保证在多线程情况下数据不会出错,一般这种需求
查看完整描述

5 回答

?
qq_遁去的一_1

TA贡献1725条经验 获得超7个赞

数据库加一个字段,判断是否为默认地址。例如:1默认0不默认,让1唯一

查看完整回答
反对 回复 2019-03-01
?
慕容3067478

TA贡献1773条经验 获得超3个赞

address 表加个is_default 字段默认为 0(不是默认) 1(默认)
第一次就读库,如果为空那么这次就是首次添加地址 则 is_default=1 否则为0

查看完整回答
反对 回复 2019-03-01
?
慕勒3428872

TA贡献1848条经验 获得超6个赞

表加字段,或者redis等做缓存,两者还可以结合用:
一个是针对session或当前客户端的,一个是除前者之外的默认

查看完整回答
反对 回复 2019-03-01
?
拉风的咖菲猫

TA贡献1995条经验 获得超2个赞

1.多线程出现问题的原因是多个线程的数据不可见性,即多个线程看到的数据都是各自为政的,所以在修改的时候会出现多个默认地址;
2.解决方案:select * from table for update,查询加锁,放在一个事务里,事务结束,锁消除

查看完整回答
反对 回复 2019-03-01
  • 5 回答
  • 0 关注
  • 692 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信