我有如下的用户管理业务场景
1、数据结构有:用户ID(非空,自增数字)、登录名(可空,但非空时不能重复的字符)、用户名(可空,但非空时不能重复的字符)
2、用户注册时必须真登录名,但使用第三方帐号(如QQ、微信等)登录则不需要(所以登录名可空),登录名一旦录入则不能修改
3、用户名可随时修改,但不能重复
4、其他业务里有大量使用用户ID查询用户信息的场景
如上情况,我要使用mongoDB存储用户信息,但是这张表的key不知如何定义(考虑到mongo使用的分片策略),如果用ID当key,但是大量的通过用户名的查询和用户登录的动作效率就不高了,如果用三者联合做key,但是用户名又是可变的。
希望大师指点。
你这里的可为空只是假的可为空,直接默认设置一个值就好了。
比如登录名,如果第三方登录的有什么影响,,默认系统给她一个登录名。
用户名一样啊,现在很多app都是登陆进去了随机给个名字你,可以改就好了。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。