数据库的用户信息表设计

用户信息表在很多情况下都需要有,属于一个项目开篇的基础。这个不搞好以后就会给自己带来麻烦。
我参考该博文设计:浅谈数据库用户表结构设计
只是有些地方我实践之后需要补充一下:

  1. user表字段:
    在这里插入图片描述

  2. user_auth表:
    在这里插入图片描述

要补充说明的是,“nickname”是唯一不重复的,所以他可以作为主键,这样有好处:

  • 减少一个字段,简化表
  • “user_auth”表里直接关联“nickname”,查询的时候不需要先去“user”表查个“user_id”再到“user_auth”表里根据“user_id”去查密码什么的。

有什么坏处暂时没想到。

nickname的唯一性

在大多数应用中,“nickname”都是唯一的。也有例外,例如QQ,但是QQ有他的特点,他登录只有QQ账号的方式,不会有用昵称登录的方式,也不会有第三方登录。但现在很多地方都是用昵称登录的方式,所以昵称的唯一性还是有必要的。

我以及我参考的博文都在提第三方登录,那我就假设项目有这个功能,那么就会存在这么一种情况:一个新用户,他选择第三方登录,如QQ,那么数据库里并没有他的信息,那么就需要为他注册,本着人性化的特点,第三方登陆时不需要他填写任何信息,那么我就简单的拿他的第三方昵称和头像作为基础信息注册,而如果改昵称已被人注册呢?我看到有人的做法是给昵称后面加上本站的标识,这样也不错。后期用户还可以改昵称嘛。那么如果昵称本来就很长,再加个标识超出长度呢?可以考虑下怎么处理更人性化。当然,加了标识之后也要检验唯一性,万一有人自己手动给名字加本站标识呢,所以这种方法也不完全好使。可以再想想有没有更好的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lsjweiyi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值