多步骤注册中遇到的数据表字段设计为 null 的问题

场景

注册分为两个步骤:

  • 注册页面:填写手机号,获取验证码,点击注册按钮,会跳转完善注册信息页面
    多步骤注册中遇到的数据表字段设计为 null 的问题
  • 完善注册信息页面:完善用户详细信息。其中有一个重要字段(设计初衷是加唯一索引)

多步骤注册中遇到的数据表字段设计为 null 的问题

(注:截图是美团的页面,我是在模仿美团设计)

问题:

注册的第一个步骤:点击注册时,会创建一条用户数据,因为这是只有一个手机号,那么存储用户的详细信息字段是要需要设置成允许 NULL吗?如果是要设置成 NULL, 那么完善用户信息页面 其中的一个重要字段就没办法设置唯一索引了,所以我想请教一下…

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
leo
最佳答案

允许 null 的字段可以设置唯一索引

4年前 评论
matteao (楼主) 4年前
讨论数量: 8

放在另一个表中???

4年前 评论
matteao (楼主) 4年前
  • 补充信息放在其他表中 使用外键关联 这样就可以创建唯一索引
  • 在一个表中,但是在保存手机号的时候随机字符串更新到你那个重要字段,待用户补充信息提交后在更新为用户填写的
  • 在一个表中,但是不设置为唯一索引

另外你说的重要字段是什么呢?除了登录名,也就是手机号外,其他还什么信息字段是唯一的呢?

可以根据自己的业务选择上面的方案,如果和个人信息或者账号信息关联性不强,建议放到其他表中也未尝不可。

4年前 评论
24K大白羊 (作者) 4年前
matteao (楼主) 4年前
24K大白羊 (作者) 4年前
matteao (楼主) 4年前

用户账号授权表和用户基本信息分开用两个表存,注册页面的时候将手机号和授权加入到用户账号授权表中,填写详细信息的时候关联一下授权表的用户就好了

4年前 评论
matteao (楼主) 4年前
leo

允许 null 的字段可以设置唯一索引

4年前 评论
matteao (楼主) 4年前

不愧是leo大神,一下就说出了别人没指出的错误描述,就是允许 null 的字段可以设置唯一索引

单列索引和联合索引都是可以的,但是is not null的时候不走索引。考虑到楼主应该不知道,就友情提示一下。

4年前 评论
matteao (楼主) 4年前

@L学习不停@leo , @zpers, @largezhou , @24K大白羊 如果设计在一张表里, 第一步创建数据时,其他所有字段(假如说有10个左右的字段)都设置为允许 NULL, 是否合适?

4年前 评论
leo

@matteao 没有任何问题

4年前 评论
matteao (楼主) 4年前

数据可以先放到缓存里面,最后一步校验通过再存数据库。

4年前 评论
matteao (楼主) 4年前

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