您的位置:首页 > 其它

对2b、2c账号的思考

2019-10-15 12:03 1106 查看
  • 2b:to business,对商业(机构);2c:to consumer,对消费者(个人)
  • 2b的产品:主要针对机构、企业的产品;2c的产品:主要针对消费者、个人的产品

假设你想推出一款针对记者,提高他们工作效率的产品,那么在设计账号体系时需要好好思考这个问题:这款产品它是2b还是2c的

不要小看这个问题,这个问题的答案会决定这个产品的账号体系的结构,以及账号体系后续的可扩展性。有这么严重么?是的。

那好,那就先回答这个问题:国内的记者大部分都是属于机构的,比如新华社、人民日报等。这些报社都是机构,假设这款产品就面对2b的产品。要想把产品推广到这些机构,暂且先按照面向2b的模式去设计账号体系。考虑下面的问题:

面向2b的模式

  1. 一个机构往往很多人,第一个问题就是能够把一个机构下的用户都归属到这个这个机构;
  2. 第二个问题:谁来创建机构中的用户?
  3. 第三个问题:机构中的用户如何登陆,通过手机?邮箱?用户名?

把这三个看似简单的问题考虑清楚,基本上就能设计出正确2b账号体系。那一一来回答这三个问题:

  1. 这个问题好解决,我在用户表中增加一个字段orgId用来标识这个用户是属于哪个机构;必须先有机构实体才有机构用户,机构用户不能脱离机构
  2. 第二个问题映射到机构中来:肯定是主管人事的领导把你拉到这个企业中来的,那么在产品中也应该由这个角色帮你创建账号。我们暂且将这个角色叫做管理员,这里需要注意的是一个机构中的管理员往往有多个,设计的表结构的时候需要考虑到这一点。同理,机构中还有其他的角色; 避免用显示字段来表示用户角色,应该用权限去划分用户角色
  3. 第三个问题其实是在问:到底什么才是用户在这个机构中的标识,手机号?不,不能是手机号。因为手机号是属于个人的,不随着机构的产生而产生、机构的消亡而消亡。邮箱同理,也不合适(这里指的是个人邮箱,机构专属邮箱除外)。所以最好使用使用机构专属用户名(以及任意只要在你这个产品上不会重复的标识,如企业专属个人邮箱)。不能用个人信息作为机构用户标识,因为个人信息属于个人,用户标识需要做到机构级别的隔离

回答完这三个问题,可以看到该账号体系本质上是面向机构实体的。

在这种模式下,假设有一个记者叫小明,小明既属于新华社北京分部有属于新华社浙江分部。那么小明应该在这两个机构中都有一个账号,几个例子:

  • 新华社北京分部的账号为:小明@新华社北京分部
  • 新华社浙江分部的账号为:小明@新华社浙江分部

这两个账号互不相干,账号数据也没有打通。这种模式的典型代表就是阿里云企业账号体系,阿里云企业账号登录名一般为:姓名@公司简称。不同公司的账号后缀是不一样的,数据也是没有打通的。

当然阿里云也支持个人账号,个人账号登录时可以使用个人邮箱和个人手机号。上面提到:纯2b的账号体系是不能用个人信息作为登录方式,否则阿里云不知道你到底登录的是哪个账号。 难道阿里云用了两套数据库表:一套用于企业账号,一套用于个人账号? 我不知道阿里云底层是怎样设计的,但我可以提出我的猜想:数据库肯定只有一套表,个人账号只是企业账号的一种特例:这个企业中只有一个人。企业信息表中有一个字段用来标识这家企业是正常的企业(多个人)还是特例的企业(一个人)。

那为什么特例企业中可以使用个人邮箱和手机号进行登录? 因为你在阿里云的个人账号只有一个,也就是说这样的特例企业只有一个,阿里云可以通过你的个人邮箱和手机号唯一查询到这家企业。

结论 面向2b的账号体现的本质是面向机构实体。先有机构再有机构用户,机构用户不能脱离于机构而存在。机构管理员拥有对机构管理员的生杀大权

上面聊了面向2b的账号模式,下面聊一下面向2c的账号模式。

面向2c的账号模式

面向2b的账号体系有一个痛点:同一个人(注意不是账号)不能在登录态中不能进切换企业。如小明登录新华社北京分社的账号后,不能直接切换登录到新华社浙江分社,必须先退出北京分社的账号后再登录浙江分社的账号。这时候小明可能会有疑问:都是我的账号,为什么不允许让我直接切换机构,还要重新登录一次,这不是纯属增添障碍吗 有这样的想法很正常,因为在现实社会中我们习惯从自身出发去思考问题。比如我在很多银行都有银行卡:建设银行、工商银行、招商银行等,虽然分布在不同的银行,但是这些银行卡都是属于我个人的。需要注意的是,在面向2b的账号体系中,你的账号并不属于你而是属于机构。你的账号是根据机构进行隔离的,所以在登录态不能切换机构。

如何你用过钉钉,你可能会问了:为什么钉钉可以在登录态中进行企业切换?难道钉钉的账号体系不是面向2b的吗? 当然我也不是钉钉员工,我也不清楚钉钉的账号体系是怎样的,但我提出我的猜想:钉钉的账号体系本质上是面向2c的账号体系。这时候你肯定想反驳:钉钉是面向企业的,它的账号体系怎么可能是面向2c的?好的,我们来回想一下,钉钉账号是谁创建的?是企业管理员吗?不,是你。是你通过个人邮箱&手机号创建的。当你创建好钉钉账号时,并没有加入任何企业,是企业管理员把你拉到企业中去的。你的钉钉账号是属于你个人的,你的账号独立于企业:既可以可以被拉到多个企业中,也可以不加入任何企业,有没有企业对你来说没有任何影响。面向2c的账号不依赖于企业,可以独立存在。 现在来解释:为什么钉钉可以在登录态切换企业?因为你登录的账号是属于你的,就算你切换企业我也知道这个账号是属于你,只不过是切换了一个企业标识而已。放在QQ的场景下,你还是你,只不过是切换了一个群,继续聊天而已。

结论 面向2c的账号体现的本质是面向个人实体。个人账号可以独立存在。个人拥有对账号的修改权限。

两种模式的比较

  1. 2b账号:面向机构实体;2c账号:面向个人实体;
  2. 2b账号:账号属于企业。对企业管理员友好,可以新开、停用企业账号;2c账号:账号属于个人。对个人友好,企业管理员不能修改个人核心信息(如登录方式),只有个人才能修改;
  3. 2b账号:企业可以方便批量新建账号。这一点在对接外部企业账号时感受非常明显;2c账号:企业只能一个一个的拉别人进来,不能新建;
  4. 2b账号:登录态无法在企业间进行切换;2c账号:登录态可以随意在企业间进行切换;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: