php 手机唯一,系统允许手机和邮箱注册,如何保证唯一性

如果只有手机注册,只要给手机做唯一索引即可,但是如果邮箱也可以注册,那进来的就不一定是手机了,也就是说mobile和email两个都不能设唯一索引,因为如果两个手机用户注册进来了,就会有两个email为空的记录,存在不唯一的情况,反之亦然。怎么处理?

回复内容:

如果只有手机注册,只要给手机做唯一索引即可,但是如果邮箱也可以注册,那进来的就不一定是手机了,也就是说mobile和email两个都不能设唯一索引,因为如果两个手机用户注册进来了,就会有两个email为空的记录,存在不唯一的情况,反之亦然。怎么处理?

我感觉有两种解决方案:

1、email和mobile设为同一个字段。

2、email和mobile同时设为unique,但是允许null,当同为null时是可以插入成功的

手机+邮箱做唯一索引呢

楼上两个字段同时判断应该可行。

但一定要用这两个字段作唯一索引吗?另增一个字段,添加记录时添入唯一索引值不知可以不?

你把手机和邮箱设置为联合唯一索引。

UNIQUE INDEX table('mobilePhone','email)

这个很简单呀,选择邮箱注册则邮箱是唯一标识(用于登录),可以绑定多个手机。如果是手机注册,手机是唯一标识,理论上也可以绑定多个邮箱(但实际大多数禁止多个)。这种状态就可以通过手机和邮箱注册两个互不影响登录的账号。所以唯一性是必须的,但是不同类型的账号是可以存在你所谓的不唯一!好好理解下吧!

可以使用一个无意义的唯一数作为用户的索引,然后注册时判断使用的手机或邮箱是否已经注册过。如果没有注册过就生成一个新的唯一数作为这个新注册用户的索引。

邮箱和手机的唯一性通过注册时的判断来保证。

但是日后如果用户补充注册时未填写的手机或邮箱时,就需要考虑是否仍要保证唯一性了。

相关标签:php

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

微信扫码订阅
UP更新不错过~
关注
  • 1
    点赞
  • 0
    收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:数字20 设计师:CSDN官方博客 返回首页
评论
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值