请教一个unique的问题


这是我的数据表。
从前端删除后,会进行软删除操作。
但是再次新增用户时,再次使用这个name和username字段会提示已存在相同的。请问怎么解决‘

代先生
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
最佳答案
Rule::unique('users', 'name')->whereNull('deleted_at')
2个月前 评论
讨论数量: 5

软删除前给username加个后缀,比如@d_1625039723

2个月前 评论
biiiiiigmonster 2个月前
liuyuit 2个月前
godruoyi

最简单的方式就是把 unique 改为普通 index。 通过代码层面去控制数据完整性,不依赖 MySQL。

2个月前 评论

1、业务上如果允许 name 和 username 字段重复。那你就移除这个重复限制

2、如果不能重复,则在新增用户时,要检索(包括已经软删除的)是否有重复

3、如果说,已经软删除的,不可能恢复。那就跟2相反,去掉检查(已经软删除的数据)

4、移除掉mysql的唯一索引

2个月前 评论

软删除前给username加个后缀,比如@d_1625039723

2个月前 评论
biiiiiigmonster 2个月前
liuyuit 2个月前

数据表设置的是唯一的话,如楼上所说,只能在删除的时候处理一下唯一字段了

2个月前 评论
Rule::unique('users', 'name')->whereNull('deleted_at')
2个月前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!