工作上遇到的逻辑思维题:页面上的手机号不能重复,现在修改页面的数据,提交后的手机号不能重复。
以前的思维是这样子的:将页面上传过来的手机号去数据库查询,如何记录条数大于1,那么就没有重复,可以成功修改。
这种逻辑判断是有问题的,因为数据库不可能存在大于1的记录数。因此,修改后的手机号肯定会插入到表中。
例如:目前数据库存在1的手机号,现在修改2的手机号,把2修改成1后,会去数据库查询1的记录,结果查询出1条记录,并没有大于1,这时也可以插入到表中。最后出现了两条手机号是1的记录。这就存在问题了。
按照项目经理熊老板的意思:(感恩)
分为两种逻辑判断,第一:是不修改手机号,第二是修改手机号。
第一:不修改手机号的逻辑思维
当点击修改页面时,已经从数据库查询出这条记录。将页面上传回的参数手机号和这条记录的手机号进行比对,如果相同表示没有修改手机号。
第二:如果判断结果是不相等,表示手机号已经修改了,这时就需要从数据库查询是否有这条记录,如果查询出来有这条记录数,表示已经存在这个手机号,最后是不能插入到表中的。如果查询出来的结果为空,表示数据库是没有这个手机号的,可以插入到表中。
这个方案成功搞定修改手机号时重复问题。代码演示: