此种业务场景在mongoDB中如何定义主键

nick_chen 发布于 2015/11/28 15:23
阅读 262
收藏 0

我有如下的用户管理业务场景

1、数据结构有:用户ID(非空,自增数字)、登录名(可空,但非空时不能重复的字符)、用户名(可空,但非空时不能重复的字符)

2、用户注册时必须真登录名,但使用第三方帐号(如QQ、微信等)登录则不需要(所以登录名可空),登录名一旦录入则不能修改

3、用户名可随时修改,但不能重复

4、其他业务里有大量使用用户ID查询用户信息的场景

如上情况,我要使用mongoDB存储用户信息,但是这张表的key不知如何定义(考虑到mongo使用的分片策略),如果用ID当key,但是大量的通过用户名的查询和用户登录的动作效率就不高了,如果用三者联合做key,但是用户名又是可变的。

希望大师指点。

加载中
0
兔龙
兔龙

你这里的可为空只是假的可为空,直接默认设置一个值就好了.

比如登录名,如果第三方登录的有什么影响,默认系统给她一个登录名,

用户名一样啊,现在很多app都是登陆进去了随机给个名字你,可以改就好了.

返回顶部
顶部