对2b、2c账号的思考
- 2b:to business,对商业(机构);2c:to consumer,对消费者(个人)
- 2b的产品:主要针对机构、企业的产品;2c的产品:主要针对消费者、个人的产品
假设你想推出一款针对记者,提高他们工作效率的产品,那么在设计账号体系时需要好好思考这个问题:这款产品它是2b还是2c的
不要小看这个问题,这个问题的答案会决定这个产品的账号体系的结构,以及账号体系后续的可扩展性。有这么严重么?是的。
那好,那就先回答这个问题:国内的记者大部分都是属于机构的,比如新华社、人民日报等。这些报社都是机构,假设这款产品就面对2b的产品。要想把产品推广到这些机构,暂且先按照面向2b的模式
去设计账号体系。考虑下面的问题:
面向2b的模式
- 一个机构往往很多人,第一个问题就是能够把一个机构下的用户都归属到这个这个机构;
- 第二个问题:谁来创建机构中的用户?
- 第三个问题:机构中的用户如何登陆,通过手机?邮箱?用户名?
把这三个看似简单的问题考虑清楚,基本上就能设计出正确2b账号体系。那一一来回答这三个问题:
- 这个问题好解决,我在用户表中增加一个字段
orgId
用来标识这个用户是属于哪个机构;必须先有机构实体才有机构用户,机构用户不能脱离机构
- 第二个问题映射到机构中来:肯定是主管人事的领导把你拉到这个企业中来的,那么在产品中也应该由这个角色帮你创建账号。我们暂且将这个角色叫做管理员,这里需要注意的是一个机构中的管理员往往有多个,设计的表结构的时候需要考虑到这一点。同理,机构中还有其他的角色;
避免用显示字段来表示用户角色,应该用权限去划分用户角色
- 第三个问题其实是在问:到底什么才是用户在这个机构中的标识,手机号?不,不能是手机号。因为手机号是属于个人的,不随着机构的产生而产生、机构的消亡而消亡。邮箱同理,也不合适(这里指的是个人邮箱,机构专属邮箱除外)。所以最好使用使用机构专属用户名(以及任意只要在你这个产品上不会重复的标识,如企业专属个人邮箱)。
不能用个人信息作为机构用户标识,因为个人信息属于个人,用户标识需要做到机构级别的隔离
回答完这三个问题,可以看到该账号体系本质上是面向机构实体
的。
在这种模式下,假设有一个记者叫小明,小明既属于新华社北京分部有属于新华社浙江分部。那么小明应该在这两个机构中都有一个账号,几个例子:
- 新华社北京分部的账号为:小明@新华社北京分部
- 新华社浙江分部的账号为:小明@新华社浙江分部
这两个账号互不相干,账号数据也没有打通。这种模式的典型代表就是阿里云企业账号体系,阿里云企业账号登录名一般为:姓名@公司简称
。不同公司的账号后缀是不一样的,数据也是没有打通的。
当然阿里云也支持个人账号,个人账号登录时可以使用个人邮箱和个人手机号。上面提到:纯2b的账号体系是不能用个人信息作为登录方式,否则阿里云不知道你到底登录的是哪个账号。
难道阿里云用了两套数据库表:一套用于企业账号,一套用于个人账号?
我不知道阿里云底层是怎样设计的,但我可以提出我的猜想:数据库肯定只有一套表,个人账号只是企业账号的一种特例:这个企业中只有一个人
。企业信息表中有一个字段用来标识这家企业是正常的企业(多个人)还是特例的企业(一个人)。
那为什么特例企业中可以使用个人邮箱和手机号进行登录?
因为你在阿里云的个人账号只有一个,也就是说这样的特例企业只有一个,阿里云可以通过你的个人邮箱和手机号唯一查询到这家企业。
结论 面向2b的账号体现的本质是面向机构实体。先有机构再有机构用户,机构用户不能脱离于机构而存在。机构管理员拥有对机构管理员的生杀大权
上面聊了面向2b的账号模式,下面聊一下面向2c的账号模式。
面向2c的账号模式
面向2b的账号体系有一个痛点:同一个人(注意不是账号)不能在登录态中不能进切换企业。如小明登录新华社北京分社的账号后,不能直接切换登录到新华社浙江分社,必须先退出北京分社的账号后再登录浙江分社的账号。这时候小明可能会有疑问:都是我的账号,为什么不允许让我直接切换机构,还要重新登录一次,这不是纯属增添障碍吗
有这样的想法很正常,因为在现实社会中我们习惯从自身出发去思考问题。比如我在很多银行都有银行卡:建设银行、工商银行、招商银行等,虽然分布在不同的银行,但是这些银行卡都是属于我个人的。需要注意的是,在面向2b的账号体系中,你的账号并不属于你而是属于机构
。你的账号是根据机构进行隔离的,所以在登录态不能切换机构。
如何你用过钉钉,你可能会问了:为什么钉钉可以在登录态中进行企业切换?难道钉钉的账号体系不是面向2b的吗?
当然我也不是钉钉员工,我也不清楚钉钉的账号体系是怎样的,但我提出我的猜想:钉钉的账号体系本质上是面向2c的账号体系
。这时候你肯定想反驳:钉钉是面向企业的,它的账号体系怎么可能是面向2c的?好的,我们来回想一下,钉钉账号是谁创建的?是企业管理员吗?不,是你。是你通过个人邮箱&手机号创建的。当你创建好钉钉账号时,并没有加入任何企业,是企业管理员把你拉到企业中去的。你的钉钉账号是属于你个人的,你的账号独立于企业:既可以可以被拉到多个企业中,也可以不加入任何企业,有没有企业对你来说没有任何影响。面向2c的账号不依赖于企业,可以独立存在
。
现在来解释:为什么钉钉可以在登录态切换企业?因为你登录的账号是属于你的,就算你切换企业我也知道这个账号是属于你,只不过是切换了一个企业标识而已。放在QQ的场景下,你还是你,只不过是切换了一个群,继续聊天而已。
结论 面向2c的账号体现的本质是面向个人实体。个人账号可以独立存在。个人拥有对账号的修改权限。
两种模式的比较
- 2b账号:面向机构实体;2c账号:面向个人实体;
- 2b账号:账号属于企业。对企业管理员友好,可以新开、停用企业账号;2c账号:账号属于个人。对个人友好,企业管理员不能修改个人核心信息(如登录方式),只有个人才能修改;
- 2b账号:企业可以方便批量新建账号。这一点在对接外部企业账号时感受非常明显;2c账号:企业只能一个一个的拉别人进来,不能新建;
- 2b账号:登录态无法在企业间进行切换;2c账号:登录态可以随意在企业间进行切换;
- 产品思考之:2B or 2C
- 这五年来我所体验到2B和2C公司的差异
- 2C的资本已经“悄悄”转向2B
- 在2B和2C之间,还有一个2H
- 开通了一个微信公众账号,主要想分享一些自己对于行业、技术和产品的思考以及收录精彩内容给读者
- 迅雷程浩:企业外包服务,下一个大的风口?(2B业务一定要懂销售和营销的人,这点和2C 不一样)
- 算法导论 思考题 16-2b 最小平均完成时间调度问题
- 产品设计:2B产品的账号权限和组织架构
- 原创思考 NSUserDefaults实现自动登录--保存账号和密码--记住登录状态
- 对象中有某些字段需要处理的思考:例如,要对一个类中的银行账号进行加密保存, 前六后四的保存。
- 关于2C与2B的产品经理,这可能是最真诚的一篇分享了
- 关于2C与2B的产品经理,这可能是最真诚的一篇分享了
- 2C 产品的本质是人性,2B 产品的背后是业务(转)
- 换了个账号重新思考
- 阿里巴巴颠覆了2C市场,VMware也想在2B市场试一试
- 在2B和2C之间,还有一个2H
- 开源平台的高并发集群思考
- 阅读与思考
- 服务器登录域账号更换注意事项
- 手游2048的一点数学方面的思考