mantout
2021-10-21 13:37:39 +08:00
如果是我来做这个功能,我就这样实现:
[初始的数据库]
table:user
id | wx_id | name | avatar | phone |
-------------------------------------------------------------------------
wx_1234 | niubi | 牛逼普拉斯 | pic_abc123 | 12345678901 |
wx_2345 | shabi | 傻逼 | | 12345678902 |
table:user_ext
id | wx_id | created_at |
--------------------------------------------
[修改微信号后的数据库]
( 1 )牛逼将 niubi 改成 niubi_plus,通过唯一性检查后,主表 user 的 wx_id 修改为新值,扩展表 user_ext 增加一条记录,记录下牛逼在系统内部的 ID 和原微信号。
( 2 )傻逼将 shabi 改成 niubi,微信提示:该微信号被占用了。修改失败。傻逼将 shabi 改成了 niubi_shabi,同第一种情况,修改成功。
table:user
id | wx_id | name | avatar | phone |
-------------------------------------------------------------------------
wx_1234 | niubi_plus | 牛逼普拉斯 | pic_abc123 | 12345678901 |
wx_2345 | niubi_shabi| 牛逼的傻逼 | | 12345678902 |
table:user_ext
id | wx_id | created_at |
-------------------------------------------
wx_1234 | niubi | 1634790634 |
wx_2345 | shabi | 1634790635 |
[再次修改微信号后的数据库]
现在不清楚微信允不允许用户改回本人之前使用过的微信号,但基本逻辑是一样的,只不过增加了一个判断:到扩展表中查一下新微信号,不存在,则允许修改。存在,再判断一下这个号是不是本人,是本人,则允许修改,不是本人,则不允许修改。
table:user
id | wx_id | name | avatar | phone |
-------------------------------------------------------------------------
wx_1234 | niubi | 牛逼普拉斯 | pic_abc123 | 12345678901 |
wx_2345 | niubi_shabi| 牛X的傻逼 | | 12345678902 |
table:user_ext
id | wx_id | created_at |
-------------------------------------------
wx_1234 | niubi | 1634790634 |
wx_2345 | shabi | 1634790635 |
wx_1234 | niubi_plus | 1634790636 |