【如图】下面的代码中(登录状态下更新用户信息的模块),为什么需要校验email?很难理解注释说的什么

其中,前端接口:

登录状态更新个人信息 /user/update_information.do
request
    email,phone,question,answer(这几个都是User类的属性)

图片描述

阅读 2.2k
2 个回答

这还是看你们用户系统的设计,根据这种实现,应该email在你们系统是1对1对关系!
由于看不到你mapper的实现根据注释实现应该类似:

SELECT COUNT(id) FROM _user WHERE email=? AND id != ?

目的单纯如果其他用户已经关联了当前邮箱则不允许当前用户使用该邮箱。

结论: 保证email和user是一对一关系,否则根据email会找到两个用户id。

意思是修改email的时候不能修改成一个库里已经存在的email,也就是不能修改成和原来一样,这里有两种情况,假设提交的email是1@xxx.com,库里有一个叫2@xxx.com,那么:
1.提交的email不能是1@xxx.com
2.提交的email不能是2@xxx.com

当然这个逻辑不是很严谨,如果修改的是和原来的一样的话那么可以提示用户不能修改成和原来一样,也可以什么操作都不做

推荐问题