请问mysql怎么设计用户表的userid?

密码的话 用什么类型合适?varchar吗?
我想userid跟用户名都可以登录。
userid是怎么设计的?类似论坛一样或者类似QQ号码一样。
userid如果是要int类型主键 自动增加的话是一位数开始的。
我想要五位数开始 比如:10001,10002,10003,以此类推

阅读 8.4k
5 个回答

密码用varchar就可以,根据你加密后的长度取就可以,主键自增开始值设置:ALTER TABLE XXXX AUTO_INCREMENT=10001;

userID可以设置为 char(5), 因为一般不会对userID进行修改。
密码可以设置为varchar, 然后在你的后端代码进行控制。
使用用户名登录注意重名情况。

设计的话正常该怎么设计就怎么设计,登录的时候,判断提交过来的是数字,还是字符串来执行代码分支就好啦

  1. mysql 自增主键的 起始值 是可以设置的(数字类型)

  2. 密码使用 char(32) 或者 char(64) 这种,具体长度,看你使用的 散列算法

如果使用 散列,那长度是一定的。 而 在 长度一定的 列 上 使用 char(x) 比 varchar(x) 好 。

说 varchar 的:

  1. 要么打算存 明文存储(长度不一定, 使用 varchar 节省空间)。

  2. 要么就是不了解 char 和 varchar 的区别。

综上

密码就varchar,找一些不可逆的算法处理一下就好(MD5)

userId可以设置自增起始值的,也可以自己实现sequence。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题